查找64位整数中设置的最高有效位和最低有效位?

时间:2010-12-23 02:37:21

标签: visual-studio-2010 visual-c++

我正在尝试使用Visual C ++在Windows上的C ++程序中完成此操作。我只需要支持64位目标。我知道使用除法或乘法获取信息的黑客,但我想知道是否有更快的非通用方法来做到这一点......我甚至会考虑内联汇编但你不能在VS中做到这一点对于64位。

1 个答案:

答案 0 :(得分:1)

如果代码可移植性不是问题,您应该尝试使用_BitScanForward64和_BitScanReverse64。它们是编译器内在函数并映射到单个高效的汇编程序指令。