【摘要】:如果用8位二进制数表示有正有负的数,就需要用8位中的一位表示数的正负。规定:最高位b7是符号位,b7=0表示“+”,b7=1表示“-”。反码 正数的反码与原码相同,负数的反码:符号位仍为1,其余各位是将该负数的原码对应的各位取反。由于8位二进制数补码所能表示的负数范围是-1~-128,此公式只适用于计算-1~-128的负数的补码。可以看到,负数的绝对值越小,它的补码看起来越大。
如果用8位二进制数表示有正有负的数,就需要用8位中的一位表示数的正负。规定:最高位b7是符号位,b7=0表示“+”,b7=1表示“-”。其余各位(b6~b0)为数值位。对于数值位,又有如下的原码、反码、补码之分:
(1)原码 其余各位(b6~b0)表示该数的绝对值。原码所能表示十进制数的范围是-127~+127。
(2)反码 正数的反码与原码相同,负数的反码:符号位(b7)仍为1,其余各位是将该负数的原码对应的各位取反。
(3)补码 正数的补码与原码相同,负数的补码:符号位(b7)仍为1,其余各位是将该负数的反码末位加1。
方法一:(X)补=(X)反+1
8位二进制数补码可以表示的十进制数的范围是+127~-128(01111111~10000000或7FH~80H)(www.xing528.com)
可以看出,正数的原码、反码、补码都是相同的,负数的原码、反码、补码各不相同。由负数的原码求补码,除了先由原码求反码,再由反码求补码的方法之外,还可以直接由原码求补码:
方法二:利用公式(-X)补=100H-X。注意,式中-X是负数,X是正数。
由于8位二进制数补码所能表示的负数范围是-1~-128,此公式只适用于计算-1~-128的负数的补码。如果要计算16位二进制数负数的补码,应当用公式(-X)补=10000H-X。
可以看到,负数的绝对值越小,它的补码看起来越大。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。