num&(num-1)的用途


  • 作用1:判斷num是否是2的指數
if(num&(num-1)==0)//num是2的指數

解釋:2的指數的二進制表示為1000,該值減一為0111,兩者相與必為0。

  • 作用2:計算num二進制表達中1的個數
int numOf1(int num){
    int res=0;
    while(num!=0){
        res++;
        num=num&(num-1);
    }
    return res;
}

解釋:num的最低位(最右邊)的1被翻轉,直至num為0。


免責聲明!

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



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