在减法中没有进位,而是有借位,但我们不打算这样做, 我们用一个小技巧来避免借位
253 - 176 = 77
转换为:
999 - 176 + 253 + 1 - 1000 = 77
可以看出,第二个式子变换一下位置即得:
253 - 176 +(999 + 1 - 1000)= 77
和原计算式相同
如果是被减数更大呢?
176 - 253 = -77
这次需要做一点变动,将原式转换为
999 - 253 + 176 = 922 此时如果减999结果为-77,但还是要用到借位,
所以我们两922和999交换位置,避开借位,得到的结果是77,但真实结果是-77。
十进制从一串9中减去一个数,叫做对9求补数,二进制从一串1中求补数时我们不需要用到减法,只需要把原来的1和0相互交换,因此对1的补数有时也会称为相反数,或反码
此加法器右侧的9个灯泡用于表示计算结果,第9个灯泡表示“上溢/下溢”,如果在加法中得到了大于255或在减法中得到了负数,这个灯泡就会发光。
加法器中新增的主要部分就是一个用来求8位二进制1补数的电路。用8个异或门合并起来 组成一个求补器。
二进制数可以有两种不同的表示方法,二进制数可以是有符号的,也可以是无符号的,无符号的8位二进制数表示范围是0~255,有符号的8位二进制数表示范围是-128~127。
负数在二进制中的表示用补码,以最高位作为符号位,符号位中,1表示负数,0表示正数。为了计算2的补数,首先要计算1的补数,然后再加1,这等价于将每位取反再加1。