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