2的n次冪


位運算判斷2的n次冪:

   舉個栗子,n = 8;則二進制表示就為1000,n-1則為 0111 取&剛好等於0

   嘿嘿,巧妙吧。

   再舉個栗子,n = 7; 則二進制為 0111,n-1則為0110 取&則不為0

   嘿嘿,也沒問題,不過這個算法僅限於無符號數。

bool is_power_of_2(unsigned long n)
{
  return (n != 0 && ((n & (n - 1)) == 0));
}

  順便說一下如何判斷2的倍數,其實很明顯,把奇數轉成二進制后,最后一位一定是1,所以只需要判斷一下 n & 1就行了

 

學習不易,諸君共勉!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM