求解补码的步骤:
(1) 求解二进制格式,得原码;
(2) 如果为正数,补码=原码,如果是负数,继续下一步;
(3) 除符号位外,各位取反;
(4) 最低位加1,最终得到负数的补码.
假设机器字长为8(一个数的二进制格式共有8位).
以9为例,9(= 8+1 = 2的3次方 + 2的0次方)的二进制格式为 000 1001,符号位为0(0表示正数,1
表示负数),它的原码为0 000 1001.
由于9是正数,它的补码等于它的原码,即0000 1001.
以109为例,它的二进制格式为110 1101,符号位为0,它的原码为0 110 1101,它的补码也就是
0110 1101.
以-9为例,
(1) 它的二进制格式为000 1001,符号位为1,它的原码为1000 1001.
(2) 由于-9是负数,继续下一步.
(3) 除符号位外,各位取反,得1111 0110(最高位是符号位,不取反).
(4) 最低位加1,得1111 0111.
-9的补码为1111 0111.