原码反码补码
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
以上是关于原码反码补码的主要内容,如果未能解决你的问题,请参考以下文章