第三章笔记
第三章预习笔记
一、高级语言和机器指令中的运算
1,按位运算:符号|按位OR运算;符号&按位AND运算;符号~表示按位NOT运算;符号^按位XOR运算。
实现掩码操作:通过与给定的一个位模式进行按位与,可以提取所需要的位,对这些位进行“置1” “清0”等。
2,符号||按位OR运算;符号&&表示AND运算;符号!表示NOT运算。
3,移位运算辑移位和算术移位。
逻辑移位:不考虑符号位,把高(低)位移出,低(高)补0.
原码的移位:原码算术移位:左移丢1,运算会出错,右移丢1,会影响精度
补码的移位:正数中,原码,补码,反码左右移都补0,负数中,原码左右移补0,补码左移补0、右移补1,反码左右移补1。
4,位扩展和位截断运算
两种位扩展方式:0扩展和符号扩展。0扩展用于无符号数,符号扩展用于补码表示的带符号整数
二、基本运算部件
1,串行进位加法器
串行进方式:n位加法器,X与Y逐位相加,位间进位串行传送。
2,并行进位加法器
计算机内部大多采用两级或多级先行进位加法器。
3,带标志加法器
三、定点数运算
1,补码加减法
运算表达式,判断是否溢出
2,原码加减运算
比较两个操作数的符号,对加法实行“同号求和,异号求差”,对减法实行“异号求和,同号求差
求和时,数值位相加,若最高位产生进位则结果溢出
求差时,被加数数值位加上加数数值位的补码
3,移码加减运算
移码的和、差等于和、差的补码。
4,原码乘法运算
原码一位乘法
(1)确定乘积的符号位。由两个乘数的符号异或得到。
(2)计算乘积的数值位,乘积的数值部分分为两个乘数的数值部分之积。
原码二位乘法
原码两位乘是用两位来决定新的部分积的形成,形成4种状态
5,补码乘法运算
补码一位乘法
(1)将符号位和数值位合在一起参与运算,直接得出用补码表示的乘积,且正数和负数同等对待称为布斯乘法
(2)符号位参与运算,运算的数均以补码表示,被乘数 x 取双符号位,乘数 y 取单符号位
(3)运算规则
补码二位乘法
6,快速乘法器
7,原码除法运算
先进行判断:除数是否为0,商是否为0,是否溢出或为不确定的值NaN
手算除法基本要点
与乘法运算一样,要将符号位和数值位分开来处理。商的符号为相除两数符号的异或值,商的数值为两数绝对值之商。
单精度除法,其商的位数一定不会超过n位,因此不会发生溢出;双精度除法,商的位数可能多于n位,因此,可能发生溢出
恢复余数除法
不恢复余数除法
(1)“正、1、减、负、0、加”:若中间余数为正数,则上商为1,下次做减法;若中间余数为负数,则上商为0,下次做加法
8,补码除法运算
补码恢复余数除法
采用“够减则上商为1,不够减则上商为0”的上商方式,因此,最后若商为负值,则需要“各位取反,末位加1”来得到真正的商
补码不恢复余数除法
被除数与除数同号,被除数减去除数;被除数与除数异号,被除数加上除数。余数与除数同号,商上1,余数左移一位减去除数;余数与除数异号,商上0,余数左移一位加上除数。(注意:余数左移加上或减去除数后就得到了新余数。直到商的位数满足要求为止。
四.浮点数运算
1,浮点数加减运算
对阶、尾数运算、规格化、舍入处理、溢出判断
2,浮点数乘除运算
先进行判0处理,规格化操作和溢出判断
(1)乘法运算:尾数相乘,指数相加;尾数规格化;尾数舍入处理;溢出判断浮点数除法运算
(2)除法运算:尾数相除,阶相减;尾数规格化;尾数舍入处理;溢出判断