原码反码补码

Posted wx1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原码反码补码相关的知识,希望对你有一定的参考价值。

 

1.计算机在任何情况下都只能识别二进制

2.计算机在底层存储数据的时候,一律存储的是“二进制的补码形式”,原因是:补码形式效率高

3.二进制有:原码、反码、补码

4.对于一个正数来说:二进制原码、反码、补码都是同一个,完全相同。

  如 int i=4;

  对应的原、反、补码都是:00000000 00000000 00000000 00000100

5.对于一个负数来说,原码、反码、补码的关系为:

  负数的反码是在其原码的基础上, 符号位不变,其余各个位取反;负数的补码是其反码再加1--(由补码可以推导出原码,负数的补码减1得出反码,再反码的符号位不变,其余位取反就能得出原码)

  如 byte i=-5; (二进制的最高位是符号位:0表示正数,1表示负数)

  对应的原码:10000101

  对应的反码:11111010

  对应的补码:11111011

 

示例:byte a=-5; byte b=4这两个相加应为-1,下面来从二进制的原码、反码、补码来解释一下

byte a=-5 对应的补码为:111110111

byte b=4 对应的补码为: 00000100

上面两个补码相加为:    111111111 由这个负数补码推导出反码为:11111110,再推导出原码为:10000001 所以结果为:-1

 

以上是关于原码反码补码的主要内容,如果未能解决你的问题,请参考以下文章

一个数的原码,反码,补码怎么算

原码反码补码

原码反码补码

知道 补码,如何 计算 原码

二进制的原码、补码、反码详解

原码反码补码与位运算