zl程序教程

您现在的位置是:首页 >  其它

当前栏目

原码、反码、补码

补码 原码 反码
2023-09-11 14:17:55 时间

正数:

  • 正数的原码、反码、补码都是该数字的二进制表示。

负数:

  • 原码是该数字的二进制表示
  • 反码是符号位不变,数值位取反
  • 补码是符号位不变,数值位在反码的基础上加1

源码反码补码之间的相互转换:

对于正数而言:

  • 没有区别:正数的原码 = 反码 = 补码

对于负数而言:

  • 原码反码之间的转换:符号位不变,数值位取反
  • 反码补码之间的转换:反码=>补码:反码+1;补码=>反码:补码-1;
  • 原码与补码之间的转换:

法一:
(1):补码先-1,得到反码;
(2):反码进行符号位不变,数值位取反的操作得到原码
法二:
(1):先符号位不变,数值位取反
(2):然后+1得到原码
理解方式:
先-1再取反与先取反再+1效果是等价的,类似于-(5 - 1)= -5 + 1;