其他分享
首页 > 其他分享> > 原码、反码和补码

原码、反码和补码

作者:互联网

所谓原码就是符号位加上数字的二进制表示,int为例,第一位表示符号 (0正数 1负数)简单期间一个字节表示

+7的原码为: 00000111
 -7的原码为: 10000111

对于原码来说,绝对值相等的正数和负数只有符号位不同。

一个数如果为正,则它的反码与原码相同;一个数如果为负,则符号位为1,(符号位不变化,其余位数取反)。

换言之 该数的绝对值取反(绝对值取反各位都取反)。
为了简单起见,我们用1个字节来表示一个整数:
+7的反码为:00000111
-7的反码为: 11111000
补码:一个数如果为正,则它的原码、反码、补码相同;一个数如果为负,去到反码然后加1。(反码加1就是补码)为了简单起见,我们用1个字节来表示一个整数:
+7的补码为: 00000111
-7的补码为: 11111001

 

正数:它的原码、反码、补码相同。

负数:反码符号位不变化,其余位数取反,补码符号位不变化其余各位原码取反(反码)+1换言之 反码+1

 

已知一个负数原码求反码:

步骤:

1.该数的绝对值取反

已知一个负数反码去求补码:

1.反码+1

已知一个负数求反码步骤:

正数的绝对值取反+1

已知一个负数求补码步骤:

1.二进制原码表示

2.符号位不变化为1 求反码。

3.符号位不变化,其余的加1.

另外,因为直接用原码涉及到减法操作,这就增加了计算机底层电路涉及的复杂性。而用补码操作时,当减去一个数时,可以看做加上一个负数,然后转变位加上这个负数的补码。即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了。

标签:反码,符号,补码,取反,负数,原码
来源: https://www.cnblogs.com/srz123/p/16684570.html