计算机中的有符号数,符号位 数值位两部分,符号位0表示整数,1表示负数。在计算机系统中,数值一律用补码来表示和存储,原因在于,使用补码,可以将符号位和数值位统一处理,同时加法和减法也可以统一处理。

a.正整数的补码是其二进制表示,与原码相同。

b.求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1 [4] 。同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。

c.数0的补码表示是唯一的,000000000

补码求原码

已知一个数的补码,求原码的操作其实就是对该补码再求补码

如果补码的符号位为“0”,表示是一个正数,其原码就是补码。

如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。

例:已知一个补码为11111001,则原码是10000111(-7)。

因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。

其余七位1111001取反后为0000110;再加1,所以是10000111。

计算机为什么要补码运算(计算机组成原理)(1)

,