逻辑/算术移位更少的位更快吗?

问题描述

x>>2x>>31 快吗? 换句话说,sar x,2sar x,31 快吗? 我做了一些简单的测试,它们似乎具有相同的速度。如果有任何确凿的证据,我将不胜感激。

解决方法

这取决于硬件实现。对于涉及常量移位的常见操作(例如指针算术),可能有更快的路径(例如,它可能与相关的加法运算融合)。对于变量移位,使用 barrel shifter 电路,其中任何移位量都具有相同的延迟。