当前位置:   article > 正文

补码原码总结.md_补码为1.0000,原码为多少

补码为1.0000,原码为多少

文章目录


正数没有什么好说的,原码反码补码皆是一样的;

对于负数,要注意了:
只要是从补码推原码,一律是取反加一,例如下面一个例子:

补码----------------------------------------------------------------> 原码
1111 1111 1000 0001(-1)

下面以八位二进制进行举例:
补码----------------------------------------------------------------> 原码
0000 0000 0000 0000
0000 0001 0000 0001
……
0111 1111 127
1000 0000 -128
10000 0001 -127
……
1111 1111 -1

小结:有符号位八位二进制数值范围:-128~127(负数与非负数的个数一样:-128,-127,…-1共计128个负数,0,1,2,3,4…127共计128个非负数)

补码推导原码:
注意 :在OD中,寄存器中的值一般都是以补码形式出现的.!!!!!
1111 1111 取反为0000 0000
再加1,为00000001,由于它是一个负数
所以原码为1000 0001(-1)

小结:补推原:取反加1,添加符号位

原码推导补码 :
与补码推导原码有一点不同,
保持符号位不变,然后再取反加一
例子:已知10000001(-1)求其补码 (加1)
1000 0001(保持符号位不变,取反)-------->1111 1110-------------->1111 1111(-1的补码)

这里需要注意的是:如果将1000 0001看成补码的话,那么进行上面的"补推原"操作,
将会得到0111 1111(127)----->(添加符号位)1111 1111(-127)
也就是说补码位1000 0001的原码为-127
小结:原推补,保持符号位不变, 取反加1,

image.png

二进制与十六进制之间的转换:
二进制 十六进制
0000---------->0
0001----------->1

0010------------>2
0011------------>3

0100------------>4
0101------------>5

0110------------>6
0111------------>7

1000------------->8
10001----------->9

101 0------------>A
101 1------------>B

110 0------------>C
110 1------------->D

111 0----------->E
111 1------------>F

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/160842
推荐阅读
  

闽ICP备14008679号