带符号数的原码、反码与补码 联系客服

发布时间 : 星期三 文章带符号数的原码、反码与补码更新完毕开始阅读840db7ee988fcc22bcd126fff705cc1755275f62

注意:这里提到的 1、0,都是二进制数。

8 位二进制数的模可以按照十进制写成 2^8,即 256。

16 位数二进制数的模,就是 2^16,按照十进制,它就是 65536。 4.3二进制数的补码

前面说过的十进制数 2二进制数的补码,求二进制数的补数,目的是往计算机里面存储。 在计算机里面,存放的数字什么的,都称为机器码;那么二进制形式的补数,也就改称为补码了。一般情况下,都是以 8 位二进制数来讨论补码,少数也有用 16 位数的。计算时加上正数,是不需要进行求取补数的;只有进行减法(或者加上负数),才需要对减数求补数。 补码就是按照这个要求来定义的:正数不变,负数即用模减去绝对值。 已知一个数 X,其 8 位字长的补码定义为:

(1) 正数:X ; 0 <= X <= +127 (正数和0的补码,就是该数字本身) (2) 负数:2^8 -|X| ; -128 <= X < 0 (负数的补码,其实就是用 1 0000 0000 (2的8次方),减去该数字的绝对值)。

例如 X = -126,其补码为 1000 0010,计算方法如下: 1 0000 0000 - 0111 1110 ----------- 1000 0010

可以看出,按照补码的定义来求补码,概念十分清晰,方法、步骤也是十分简单的。 应用补码进行计算

用补码计算:83-25=58。

83 ---都变成补码,再用加法运算--> 0101 0011 - 25 -> 1 0000 0000 - 0001 1001-> + 1110 0111 ----- -------- 58 <--忽略进位1,结果就是正确的-->[1]0011 1010

计算结果如果超出了-128~+127的范围,结果将是错误的,这是没有办法纠正的。 应用补码进行计算,完全符合前面介绍的“用补数可把减法转换成加法”的做法,只要忽略进位(这个进位1,就是求补的时候,加进去的1 0000 0000中的1),结果就是正确的。