计算机里面,只有加法器,没有减法器,减法,必须用加法来完成。对于 100 以内的十进制数,《减1》,就可以用《加99》代替。比如 25 - 1 = 24,可以写成 25 + 99 = (1)24。限定了两位数,-1 和 +99是等效的。同样,-2,可以用 +98 代替。……它们之间,称为《补数》。100 称为《模》。
对于 8 位二进制数:0000 0000~1111 1111(255),模为256。-1,可以用 255(11111111)代替。-2,可以用 254(11111110)代替。……这些二进制数,就称为负数的《补码》。已知一个负数,求其补码,用模计算一下,大家都能算出来。
正数的补码与原码相同,负数的补码需要转换为下面:保留最高位符号位,
原码-->补码:取反加1
补码-->原码:减1取反
(1)正数的补码:与原码相同。 例如,+9的补码是00001001。(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码0000111按位取反为1111000;再加1,所以-7的补码是11111001。
|