<分区>
x>>2
是否比 x>>31
快?
换句话说,sar x, 2
是否比 sar x, 31
快?
我做了一些简单的测试,他们似乎有相同的速度。如果有任何确凿的证据,我将不胜感激。
<分区>
x>>2
是否比 x>>31
快?
换句话说,sar x, 2
是否比 sar x, 31
快?
我做了一些简单的测试,他们似乎有相同的速度。如果有任何确凿的证据,我将不胜感激。
最佳答案
这取决于硬件实现。对于涉及常量移位的常见操作(例如指针算术),可能有更快的路径(例如它可能与相关的加法操作融合)。对于按变量移动,barrel shifter使用电路,其中任何移位量都会有相同的延迟。
关于c++ - 逻辑/算术移位越少位越快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67081682/
相关文章:
c++ - 为什么需要同时使用 fixed 和 showpoint 操纵器来显示小数点和尾随零,而只有 fixed 才能完成这项工作?
c++ - 一种通过 ID 访问并查找加权随机项的高效数据结构
Crenshaw 的 "Let' s Build a Compiler": Transcription to C and x86 Assembler?
assembly - 如何在 x86_64 asm 中调用 malloc
c++ - 指向自创建结构的双指针 - 编译器说 OK - 程序中止
Qt 应用程序中的 c++ boost::thread() - 错误:函数参数太多