[其他] 移位运算为什么比乘法除法快

[复制链接]
5232|51
AIsignel 发表于 2024-11-13 15:26 | 显示全部楼层
现代编译器经常优化移位操作,以进一步提高它们的执行效率
不想打补丁 发表于 2024-11-13 23:52 | 显示全部楼层
移位运算之所以在某些情况下比乘除运算快,主要是因为硬件支持和运算简化。
物联万物互联 发表于 2024-11-14 11:14 | 显示全部楼层
移位操作的结果只取决于输入数据的位模式,而不取决于数据的具体值。
dreamCar 发表于 2024-11-15 11:43 | 显示全部楼层
主要原因是其工作原理和硬件实现更简单直接
明日视界 发表于 2024-11-16 12:04 | 显示全部楼层
乘法器需要多位乘法和累加,分频器需要多位比较和移位,这两者都需要更多的时钟周期。
suncat0504 发表于 2024-11-16 21:17 | 显示全部楼层
在基础数字电路级别上就可以实现移位处理,所以配置到单片机里很容易。程序运算涉及至少两个寄存器的处理,本身也复杂。
天天向善 发表于 2024-11-17 13:14 | 显示全部楼层
编译器通常会优化乘法和除法运算,以便尽可能地移位运算,尤其是在乘以或除以2的幂时。
LinkMe 发表于 2024-11-20 23:05 | 显示全部楼层
乘法运算通常涉及多个加法运算和移位运算。
wex1002 发表于 2024-11-22 17:32 | 显示全部楼层
移位操作直接作用于数据的二进制表示,不需要二进制转换。这使得移位操作在底层实现中更加直接和有效。
LLGTR 发表于 2024-11-23 20:43 | 显示全部楼层
因为移位操作很简单,所以通常只需要一个或几个指令周期就可以完成。,
hmcu666 发表于 2024-12-5 18:06 | 显示全部楼层
移位运算比乘法和除法快主要是因为它们直接操作二进制位,避免了复杂的乘法和除法运算过程中的复杂计算步骤和多次迭代。移位操作是简单的位移动,处理器能够直接并行处理这些操作,因而速度快很多。而乘法和除法操作,特别是在涉及浮点运算时,需要进行更复杂的数**算,所需时间更长。因此,移位运算在多数情况下更快。
AloneKaven 发表于 2024-12-10 18:01 | 显示全部楼层
二进制运算当然快
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部