2的冪

yinghualeihenmei發表於2024-04-19

個數 n 是 222 的冪,當且僅當 nnn 是正整數,並且 nnn 的二進位制表示中僅包含 111 個 111。

因此我們可以考慮使用位運算,將 n 的二進位制表示中最低位的那個 1 提取出來,再判斷剩餘的數值是否為 000 即可。下面介紹兩種常見的與「二進位制表示中最低位」相關的位運算技巧。

第一個技巧是


n & (n - 1)

public bool IsPowerOfTwo(int n) {
if(n==1)
{
return true;
}
else
{
while(n>2){
if (n%2==1)
{
return false;
}
n=n/2;
}
if(n==2)
{
return true;
}
else
{
return false;
}
}

}

相關文章