javascript - 按位运算符比 + 和 - 运算符更快

标签 javascript c++ c bit-manipulation bit-shift

请引用Link .

建议计算数字绝对值的最快方法是使用(相对困难的)按位运算符。

我知道按位运算符比除法和乘法更快。但它们比 + 和 - 运算符更快吗?

谢谢

最佳答案

我确信编译器会非常感谢您对这种情况的分析;它肯定不会想到这一点!

以下是 GCC 对此的看法:

int myabs(int n)
{
  return n < 0 ? -n : n;   // hurray, portable code!
}

变成:

mov edx, edi     ;; edx = x
sar edx, 31      ;; edx >>= 31
mov eax, edx
xor eax, edi
sub eax, edx     ;; eax = (x ^ (x >> 31)) - (x >> 31)
ret              ;; return eax

关于javascript - 按位运算符比 + 和 - 运算符更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17834190/

相关文章:

java - android中是否有用于ms office word(.doc/.docx)到(image/html/xml/pdf)转换的Api

c++ - 在 g++ 上进行聚合初始化的 std::array 生成大量代码

c - 作业 : Help transalate pseudo code into C code

C数组在堆栈上分配一个额外的指针

javascript - 在 Backbone View 中编写下拉菜单

javascript - JQuery 找不到子类别 ID

javascript - 将表格导出到 Excel 后,超链接显示为文本

javascript - 使用 Javascript 更改图像 src

c++ - OpenCV KNearest 输入

通过删除前导零来压缩字符大小整数