我使用64位整數中的位存儲標誌。
我想知道是否有一個位設置在64位整數內的任何位置(例如,我不關心任何特定位的位置)。檢查一個整數中是否只設置了一個位(無論其位置)
boolean isOneSingleBitSet (long integer64)
{
return ....;
}
我可以指望使用Bit Twiddling Hacks (by Sean Eron Anderson)位數,但我想知道什麼是隻檢測一個單個位是否設置最有效的方式...
我發現了一些其他的相關問題:
個,也有一些維基百科頁面:
NB:我的應用程序是在Java中,但我用其他語言很好奇優化...
編輯:Lưu Vĩnh Phúc指出我的第一個鏈接在我的問題中已經得到了答案:請參閱Determining if an integer is a power of 2Bit Twiddling Hacks(作者:Sean Eron Anderson)。我沒有意識到單個位與相同兩個功率。
對於Java我會考慮使用位集合類用於此目的,它支持方便的isEmpty()方法,以及許多其他製造位標誌更容易使用。 – maximdim
它已經在上面鏈接的Bit Twiddling Hacks中:[確定一個整數是2的冪](http://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2) –
哦!謝謝:-)我更新我的問題:-)乾杯 – olibre