数在数字电路中的二进制表示形式成为机器数,在通常的算术运算中,用“+”、“-”表示正数和负数,而数字电路不识别“+”,“-”。因此,在数字电路中把一个数的最高位作为符号位,并用0表示“+”,用1表示“-”。二进制正负数的表示法有原码、反码、补码。

三种表示法对正数都是一样的,即符号位为0,随后是二进制数的绝对值。

对负数而言,3中表示法不一样。

1、 原码表示法

负数符号位1,随后是二进制数的绝对值。

如(-45)的原码=(10101101)

2、 反码表示法

负数符号位为1,随后将每位二进制取反。

如(-45)反码=(11010010)

可见反码表示的负数相当于将其对应的正数(连同符号位)按位取反得到。

3、 补码表示法

负数符号位为1,随后是二进制的补码。补码通过反码加1得到。

如(-45)补码=(11010011)

补码可以用加法来计算减法,如M-N,可以先求N的补码再加上M就可以了,即M-N=M+(-N)。设一个负数-N,则N的反码+N的补码=进位1的数。