定点数移位运算

  1. 算数移位

    原码的算数移位:

    符号位保持不变,仅对数值位进行移位
    a)右移:高位补0低位舍弃。若舍弃的位=0,则相当于÷2,若舍弃的位≠0,则会丢失精度。
    b)左移:低位补0高位舍弃。若舍弃的位=0,则相当于×2,若舍弃的位≠0,则会出现严重误差。
    在这里插入图片描述

    反码的算数移位:

    a) 正数的反码的移位与原码相同,用0补充。
    b) 负数的反码:右移是高位补1,低位舍弃;左移是低位补1,高位舍弃。
    在这里插入图片描述

    补码的算数移位:

    a) 正数的补码的移位与原码相同,用0补充。
    b) 负数的补码:右移(同反码),高位补1,低位舍弃;左移(同原码):低位补0,高位舍弃。
    在这里插入图片描述
    总结:左移相当于 × 2,右移相当于 ÷ 2;由于位数有限,因此有时候无法用算数移位精确地等效乘除法。
    在这里插入图片描述

  2. 逻辑移位

    a) 右移:高位补0,低位舍弃。
    b) 左移:低位补0,高位舍弃。
    总结:可以看作是对“无符号数”的算数移位。
    在这里插入图片描述

  3. 循环移位

    a)不带进位位(小循环):用移除的位补上空缺。
    b)带进位位(大循环):移除的位放到进位位,原进位位补上空缺。
    总结:适用用来将数据的低字节数据和高字节数据互换。

    在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值