定义:
反码是原码求补码或补码求原码的过渡码。
表示方法:
正数的反码是其本身原码,负数的反码是在其原码的基础上,符号位不变,其余各位取反。
举例:(4位二进制数)
真值 | 原码 | 反码 | 真值 | 原码 | 反码 |
0 | 0000 | 0000 | -0 | 1000 | 1111 |
1 | 0001 | 0001 | -1 | 1001 | 1110 |
2 | 0010 | 0010 | -2 | 1010 | 1101 |
3 | 0011 | 0011 | -3 | 1011 | 1100 |
4 | 0100 | 0100 | -4 | 1100 | 1011 |
5 | 0101 | 0101 | -5 | 1101 | 1010 |
6 | 0110 | 0110 | -6 | 1110 | 1001 |
7 | 0111 | 0111 | -7 | 1111 | 1000 |
让我们尝试用反码进行加法运算!
例: 0001+0001=0010,1+1=2
0000+1111=1111,0+(-0)=-0
0001+1110=1111,1+(-1)=-0
1001+1001=1010,-6+(-6)=-5
由此我们知道,负数和负数相加会出现错误结果。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程