补码原码总结.md

文章目录


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

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

补码----------------------------------------------------------------> 原码
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值