原码反码补码的计算方法

Posted lylhome

tags:

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

原码反码补码具体的讲解可以看看这篇:https://blog.csdn.net/afsvsv/article/details/94553228

 

总结一下计算方法

对于a-b,

首先,将a、b转换成二进制数,这时候的二进制数是无符号的。计算a无 - b无

原码:将无符号数首位当成符号位,正数置为0,负数置为1。这里要注意b的大小不应该超过原码可以表示的范围,否则转换出来的原码是错误的。计算a原+b原

反码:在原码的基础上,将函数的非符号位取反,符号位不变。计算a反+b反

补码:在反码的基础上,负数加1,正数不变;

或者在原码的基础上,对符号位后面(n-1)位的数字取模(假如后面(n-1)位表示数值,那么模为2^(n-1),用二进制表示就是首位1跟着n-1个0)

这里的模就是mod后面的那个数,C的计算符是%

 

比如,a=3,b=5,计算a-b

转换成二进制无符号数a无=0101,b无=0111,这时仍要计算0101 - 0111(不要计算结果,是错误的)

转换成原码a反=0101,b反=(-0111)=1111,这时要计算0101+1111(不要计算结果,是错误的)

转换成补码a补=0101,b补=1001,这时计算0101+1001=1110(这是a-b的补码表示,转换成原码是1010,即-2,正确)

 

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

知道 补码,如何 计算 原码

如何理解二进制原码,反码,补码,二进制补码运算

原码,反码,补码

原码反码补码

原码 反码 补码

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