数值X的补码记做[X]补,如果机器字长n,则最高位为符号位,0表示1正号,1表示负号,其余的n-1位表示数值。正数的补码与其原码反码相同,负数的补码则等于其反码的末尾加1。在补码表示中,0有唯一的编码:[+0]补=00000000,[-0]补=00000000。
例题: 若机器字长n等于8,则
[+1]补=00000001
[-1]补=11111111
[+127]补=01111111
[-127]补=10000001
[+45]补=00101101
[-45]补=11010011
[+0.5]补=0◇1000000
[-0.5]补=1◇1000000(其中◇是小数点的位置)
相对于原码和反码表示,n位补码表示法有一个例外,当符号位为1而数值位全部为0时,它表示整数-2n-1,即此时符号位的1即表示负数又表示数值。
设计补码时,有意识地引用了模运算在数理上对符号位的处理,利用模的自动丢弃实现了符号位的自然处理。
用补码表示数时,由于符号位的数值部分一起编码,很难从码值形式直接判断真值的大小。例如,45>-45,而其补码00101101在形式上小于11010011。
文章介绍了补码的概念,它用于表示数值,特别是负数。补码中,最高位是符号位,0代表正,1代表负。正数的补码、原码和反码相同,而负数的补码是其反码加1。在8位机器字长的例子中,给出了不同数值的补码表示。补码的一个特点是,当符号位为1且数值位全为0时,表示-2^n-1。补码利用模运算的性质简化了符号位的处理。
1万+

被折叠的 条评论
为什么被折叠?



