加法规则:
先判符号位,若相同,绝对值相加,结果符号不变;若不同,则作减法,|大|-|小|,结果符号与|大|相同。
减法规则:
两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。
2.补码加法运算
补码加法的公式:
[x]补+[y]补=[ x+y]补
特点:不需要事先判断符号,符号位与码值位一起参加运算。
符号位相加后若有进位,则舍去该进位数字。
在模2意义下,任意两数的补码之和等于该两数之和的补码。
这是补码加法的理论基础。
补码加法的特点:
(1)符号位要作为数的一部分一起参加运算:
(2)在模2的意义下相加,即大于2的进位要丢掉。
其结论也适用于定点整数。
补码减法运算的公式:
[x-y]补=[x]补一[ y]补=[ x]补+[- y]补公式证明:只要证明[一y]补=一[y]补,上式即得证。证明:
[x+y]补=[x】补+[y]补
令y=-x
[0]补=[x]补+[一y】补
故 [一x]补=一[x] (mod 2)
减法运算要设法化为加法完成。
例: x=+0.1101,y=+0.0110,求x-y。解: [x]补=0.1101
[y]补=0.0110 [-y]补 =1.1010
[x]补 0.1 1 0 1
+[一y] 1.1 0 1 0 : 所以x-y=+0.0111
[x一y]补 1 0.0 1 1 1
例: x=-0.1101,y=-0.0110,求x-y
解: [x]补=1.0011
[y]补=1.1010 [-y]补=0.0110
[x]补 1.0 0 1 1
+[-y]补 0.0110
[x-y]补 1.1 001 所以x -y =0.0111
基本的二进制加/减法器
利用全加器可以实现两数的和或差
串行加法:从低位开始,每步只完成一位运算的加法。
-串行加法器只需要一个全加器和一个进位触发器
-计算两个n位数之和,需要n+1步(1位符号位),或n+2步(2位符号位)运算。
-高位运算只有等低位运算完成后才能进行,速度较慢
并行加法器:可在同一时刻完成n位数的运算。
-若采用变形补码表示一个机器数,则符号位需2位,这时需要n+2个加法器。-运算速度比串行进位加法器高很多,这是用足够多的硬件设备换来的。
1.人工算法与机器算法的同异性
在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号立按异或运算得到,而乘积的数值部分则是两个正数相乘之积。
设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,先用习惯方法求其乘积,其过程如下: