【发布时间】:2012-11-16 16:10:00
【问题描述】:
我使用 64 位整数中的位存储标志。
我想知道在 64 位整数中的位置是否设置了一个位(即我不关心任何特定位的位置)。
boolean isOneSingleBitSet (long integer64)
{
return ....;
}
我可以使用Bit Twiddling Hacks (by Sean Eron Anderson) 计算位数,但我想知道仅检测是否设置了一个位的最有效方法是什么...
我发现了一些其他相关的问题:
还有一些维基百科页面:
注意:我的应用程序是用 java 编写的,但我对使用其他语言的优化感到好奇...
编辑:Lưu Vĩnh Phúc 指出我的问题中的第一个链接已经得到了答案:请参阅 Bit Twiddling Hacks 中的 Determining if an integer is a power of 2 部分(作者 Sean Eron安德森)。我没有意识到一位与二的幂是一样的。
【问题讨论】:
-
对于 Java,我会考虑为此目的使用 BitSet 类,它支持方便的 isEmpty() 方法以及许多其他使位标志更易于使用的方法。
-
它已经在上面链接的 Bit Twiddling Hacks 中:Determining if an integer is a power of 2
-
哦!谢谢 :-) 我更新了我的问题 :-) 干杯
-
这能回答你的问题吗? How to check if a number is a power of 2
标签: java binary bit-manipulation bit bitwise-operators