机器数有原码、反码和补码3种表示方法。一种数有多种表示方法是简化运算电路和提高运算速度的需要。
(1)原码
原码是二进制数符号数值化以后的表示形式,是机器数的原始表示,是对应于反码和补码的称呼。
(2)反码
正数的反码与原码相同。例如:
十进制数+76的原码表示为 [+76]原=01001100
十进制数+76的反码表示为 [+76]反=01001100
十进制数+0的反码表示为 [+0]反=00000000
负数的反码是由原码转换得到的,转换方法为:符号位不变,数值位按位取反。例如:
十进制数-76的原码表示为 [-76]原=11001100
十进制数-76的反码表示为 [-76]反=10110011
十进制数-0的原码表示为 [-0]原=10000000
十进制数-0的反码表示为 [-0]反=11111111
(3)补码
正数的补码与原码相同。例如:
十进制数+8的原码表示为 [+8]原=00001000
十进制数+8的反码表示为 [+8]反=00001000(https://www.xing528.com)
十进制数+8的补码表示为 [+8]补=00001000
十进制数+0的补码表示为 [+0]补=00000000
负数的补码是把反码的最低位加1。例如:
十进制数-8的原码表示为 [-8]原=10001000
十进制数-8的反码表示为 [-8]反=11110111
十进制数-8的补码表示为 [-8]补=11111000
十进制数-0的补码表示为 [-0]补=00000000
原码、反码和补码都是二进制符号数的表示方法,其共同特点是:最高位为符号位,正数的原码、反码和补码相同。由此可见,-0和+0的原码和反码是不同的,而二者的补码是相同的;在计算机中为了保持一致性,正负数都用补码方式表示。此外,还应注意以下两点:
·负数补码的转换过程是:原码→反码→补码。
·负数的补码再取补就得到原码,以十进制数-85为例进行说明:
[-85]原 = 11010101
[-85]反 = 10101010
[-85]补 = 10101011
[(-85)补]反= 11010100
[(-85)补]补= 110101001=[-85]原
补码在计算机中被广泛采用。补码运算可将符号位当成数据位对待,可把有符号数与无符号数统一起来,并将二进制减法运算变为加法运算,从而给符号数的运算提供方便;也有利于简化运算电路,提高运算速度。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
