定点数的加减法运算——原码
加法规则:首先判断符号位,如果相同,则将绝对值相加,结果符号位不变;如果不同,则做减法,绝对值大的数减去绝对值小的数,结果符号位与绝对值大的数相同。
减法规则:首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。
反码的加法运算
反码加法在最高位进位而丢掉高位时,必须在最低位补上 +1。
定点数的加减法运算——补码
补码运算特点:
(1) 参与运算的两个操作数均用补码表示。
(2) 按二进制运算规则运算,逢二进一。
(3) 符号位与数值位按同样规则一起参与运算,符号位运算产生的进位需要丢弃,结果的符号位由运算得出。
(4) 补码加减运算按照以下公式进行。当参加运算的数是定点小数时,模M=2;当参与运算的数是定点整数时,模M=2
[A+B]补 = [A]补 + [B]补
[A-B]补 = [A]补 + [-B]补
溢出:
在定点整数运算过程中如出现大于字长绝对值的现象称为“溢出”,在定点机中出现溢出时其结果是不正确的,故运算器必须能检测出溢出。
两个正数相加结果大于机器字长所能表示的最大正数称为正溢;
两个负数相加结果小于机器所能表示的最小负数称为负溢;
为了判断“溢出”是否发生我们采用双符号位法,又称为“变形补码”
半加器
半加器是指对输入的两个一位二进制数相加(A与B),输出一个结果位(SUM)和进位(C),没有进位的输入加法器电路,是一个实现一位二进制数的加法电路。
真值表
被加数A | 加数B | 和SUM | 进位C |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
根据上述的真值表,当A和B相同时SUM为0,否则为1;逻辑关系属于异或;当A和B同时为1时,C等于1,其余都为零,逻辑关系为与。
逻辑表达式:
半加器电路图:
全加器
全加器是实现两个一位二进制数相加的基本单元,其内部主要由 n 个全加器构成。 设A(i)为被加数,B(i)为加数,本位和S(i),本为进位C(i+1),低位进位C(i)
全加器真值表
全加器表达式:
全加器电路图:
优点:简单;
缺点:高位要等待低位运算;
1.人工算法与机器算法的同异性\n\n在定点计算机中,两个原码表示的数相乘的运算规则是:
乘积的符号位由两数的符号立按异或运算得到,而乘积的数值部分则是两个正数相乘之积。
设n位被乘数和乘数用定点整数表示
被乘数 [x]原=xfxn-1…X1X0
乘数[y]原=YfYn-1-y1yo
乘积[z]原=(xy(+)yf)+(xn-1…x1x0)(Yn-1-1·yivo) (2.22)
式中,x,为被乘数符号,y为乘数符号。
乘积符号的运算法则是:同号相乘为正,异号相乘为负。由于被乘数和乘数的符号组只有四种情况(xyyy=00,01,10,11),因此积的符号可按“异或”(按位加)运算得到。
数值部分的运算方法与普通的十进制小数乘法相类似,不过对于用二进制表达的数来,其乘法规则更为简单一些。设x=1101,y=1011,先用习惯方法求其乘积,其过程如下: