Given an integer, write a function to determine if it is a power of two.
題意:判斷一個數字是不是2的整數次冪。
思路:2的整數次冪,包括2的0次冪,在二進制表示中,所有bit位上只會有一個1。
- 可以通過用1從0到31不停右移統計1一共出現過幾次。
- 如果只有一個bit位是1,則n & (n-1)的結果是0。
public boolean isPowerOfTwo(int n) {
if (n <= 0) {
return false;
}
return (n & (n - 1)) == 0;
}