第一章补充:补码的计算

1. 由原码求补码

1.1 正数:

正数的原码=补码=反码

1.2 负数:

负值则逐位取反,末位加1

[- 10101010]补
=1 01010101 +1
=1 01010110

[-0.010101]补
= 1.101010

  • 0.000001
    = 1.101011

**Note:**补码的最高位为符号位;0为正,1为负

2. 由补码求真值

  1. 补码的最高位如果是0,则是正数,补码原码反码都一样
  2. 如果最高位是1,则代表是负数

举例:
补码为1.0000000,求原码
方法:
1.是负数,进行下一步,若为正数,加个正号+
2.对所有位取反,在做末位加1
3.再加上负号 -

所以真值为:
0.1111111
1.0000000
-1.0000000(最终结果)

3.已知 [ Y ] 补 [Y]_补 [Y],求 [ − Y ] 补 [−Y]_补 [Y]

方法一:将 [ Y ] 补 [Y]_补 [Y]包括符号位全部取反,最后+1(机器内部做法)
方法二:从右向左扫描,碰到第一个1,则1之前扫描的数原样输出,后面扫描的取反输出。(适合手算)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值