原码、反码、补码
在前面一个章节中,我们已经了解到了:数据是以二进制的形式进行存储的,我们并没有考虑到负数是以什么样的状态存储的,这一章我们就来了解有符号的数据是以什么样的形式进行存储的,由此,我们引入了原码的概念,发现并不能解决负数的存储,又引入了反码的概念,然而,会出现-0和+0两种情况,那该怎么办呢?别急,在本章节中将会解决此问题。
原码
表示
正数的最高位表示0;
负数的最高位表示1;
其他位为数值位;
举例:+7
符号位 数值位
0 0000111
-7
符号位 数值位
1 0000111
反码
表示
正数的反码与原码相同;
负数的反码与原码符号位相同,数值位取反,就是0变1,1变0。
举例:+7
符号位 数值位
0 0000111
-7
符号位 数值位
1 1111000
补码
计算机中的数据的计算都是以二进制补码的形式来计算的
表示
正数的补码与反码相同;
负数的补码与反码符号位相同,数值位加1。
举例:+7
符号位 数值位
0 0000111
-7
符号位 数值位
1 1111001