2011-12-13 28 views
1

我曾經遇到確定的方法,如果數x是2通過執行以下操作的功率的功率:使用位操作以確定是否int是2

X &(X-1),接着一個0測試,如果結果爲0,則意味着數字中只有一個1位,並且它是2的冪。但問題是它不能用於signed int?我只是想知道,如果唯一的例外是一個有符號的int,它可能是唯一一個有符號的位,如果是這種情況,我可以簡單地添加另一個測試並完成它。或者是否有其他例外,這種方法可能不適用於帶符號的int。因爲我真的想在java中使用它,所以我希望我能以某種增強的方式採用它。非常感謝。

回答

2

沒關係;只是測試底片。正數的冪不會是負數,所以你可以放心地說任何給定的負數都不是2的冪。

+0

我也這麼認爲,非常感謝 – Will

相關問題