深度解析定点数的移位运算

408答疑



一、相关概念复习

定点数的移位运算

当计算机中没有乘/除法运算电路时,可以通过加法和移位相结合的方法来实现乘/除法运算。对于任意二进制整数,左移一位,若不产生溢出,相当于乘以 2(与十进制数的左移一位相当于乘以 10 类似);右移一位,若不考虑因移出而舍去的末位尾数,相当于除以 2。

根据操作数的类型不同,移位运算可以分为逻辑移位和算术移位。

逻辑移位

逻辑移位将操作数视为无符号整数。逻辑移位的规则:左移时,高位移出,低位补 0;右移时,低位移出,高位补 0。对于无符号整数的逻辑左移,若高位的 1 移出,则发生溢出。

算术移位

算术移位需要考虑符号位的问题,即将操作数视为有符号整数。
计算机中的有符号整数都是用补码表示的,因此对于有符号整数的移位操作应采用补码算术移位方式。算术移位的规则:左移时,高位移出,低位补 0,若移出的高位不同于移位后的符号位,即左移前后的符号位不同,则发生溢出;右移时,低位移出,高位补符号位,若低位的 1 移出,则影响精度。例如,补码 1001 和 0101 左移时会发生溢出,右移时会丢失精度。

运算方法和运算电路

  • 原文链接:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

408答疑+v:18675660929

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值