正数:
- 正数的原码、反码、补码都是该数字的二进制表示。
负数:
- 原码是该数字的二进制表示
- 反码是符号位不变,数值位取反
- 补码是符号位不变,数值位在反码的基础上加1
源码反码补码之间的相互转换:
对于正数而言:
- 没有区别:正数的原码 = 反码 = 补码
对于负数而言:
- 原码与反码之间的转换:符号位不变,数值位取反
- 反码与补码之间的转换:反码=>补码:反码+1;补码=>反码:补码-1;
- 原码与补码之间的转换:
法一:
(1):补码先-1,得到反码;
(2):反码进行符号位不变,数值位取反的操作得到原码
法二:
(1):先符号位不变,数值位取反
(2):然后+1得到原码
理解方式:
先-1再取反与先取反再+1效果是等价的,类似于-(5 - 1)= -5 + 1;