原码、反码、补码
计算机通常用补码表示整数
公式:负数(x)
(x)原码+(x)补码=0,进位丢弃.
为了简单起见,我们用1个字节来表示一个整数。
原码
将最高位作为符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值(以二进制表示)。
+7的原码为: 00000111
-7的原码为: 10000111
问题:
+0的原码为:00000000
-0的原码为: 10000000
反码:
一个数如果为正,则它的反码与原码相同;一个数如果为负,则符号位为1,其余各位是对原码取反。
+7的反码为:00000111
-7的反码为: 11111000
问题:
+0的反码为:00000000
-0的反码为:11111111
补码:
一个数如果为正,则它的原码、反码、补码相同;
一个数如果为负,则符号位为1,其余各位是对原码取反,然后整个数加1。
+7的补码为:00000111
-7的补码为:
第一步:由-7原码得到-7的反码,得到11111000,第二步,反码+1=11111001
即负数补码公式:
补码=反码+1
问题:0的补码表示:
+0的补码: 00000000
-0的补码:
第一步:得到-0(10000000)的反码:11111111
第二步:反码(11111111)+1 = 1 00000000
第三步:进位1被丢弃
对于有模运算来讲,减一个数等于加上该数对模的补数。补码就是按补数概念对数据进行编码的。计算机引入补码后,减法可转换为加法,方便运算