原码,反码与补码实例分析

总结:

1.正数的原码、反码、补码是一致的;

2.负数的补码是反码加1,反码是对原码按位取反,只是最高位(符号位)不变;

3.计算机数字运算均是基于补码的。

例如:
127的补码为 0111 1111
-127的补码为 1000 0001
最高位为符号位。

计算机使用补码计算的好处:
如果计算机内部采用原码来表示数,那么在进行加法和减法运算的时候,需要转化为两个绝对值的加法和减法运算;

计算机既要实现加法器,又要实现减法器,代价有点大,那么可不可以只用一种类型的运算器来实现加和减的远算呢?
可以,那就是用补码来统一加减法运算。
我们以 5+3 和 5-3 为例子来说明问题。
两个正数相加,补码与原码一样,正常的进行二进制加法即可。
5-3,则分别求5 、(-3)的补码,然后进行加法,对于溢出的高位舍弃即可。
在这里插入图片描述
补充:

已知一个数的补码,求原码的操作其实就是对该补码再求补码。
正整数的原码、反码和补码是一样的,即看到符号位(第一位)是0,就可以照着写出其他两种码。所以已知正数的补码,求其原码,两个数是一样的。
补码转换为原码:(对负数而言)符号位不变,数值位按位取反,末位再加1。即补码的补码等于原码。

负数求补码的简单方法则是:
左右找1,1不变,中间取反。这句话的具体解释,就是找到该补码的左边和右边的第一个1,然后左边和右边的第一个1都不变,再把这两个1中间的数都取反,就得到其原码了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章