如何判斷一個非負整數是否是2的冪


如何判斷一個數是2的冪,主要是要找出2的冪次方的數的特點。我們知道,1個數乘以2就是將該數左移1位,而2的0次冪為1, 所以2的n次冪(就是2的0次冪n次乘以2)就是將1左移n位, 這樣我們知道如果一個數n是2的冪,則其只有首位為1,其后若干個0,必然有n & (n - 1)為0。(在求1個數的二進制表示中1的個數的時候說過,n&(n-1)去掉n的最后一個1)。因此,判斷一個數n是否為2的冪,只需要判斷n&(n-1)是否為0即可。

實現:

   1: bool powerof2(unsigned int n)
   2: {
   3:     return ((n & (n -1)) == 0);
   4: }


免責聲明!

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



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