判斷一個整數是不是2的階次方數

解答:如果一個數是2的階次方數,那麼它的二進制的首位一般是1,後面接若干個0.比如8就是1000,64就是1000000,。如果將這個數減1後,再與該數做和(&)運算,則應該全爲0.(例如,8與7,一個是1000,一個是111,他們做和運算後全是0)所以((d-1)&(d))==0

class Result{

      void print(int d){

           if(((d-1)&(d))==0)&&(d!=0))

            print("2的階次方")

      }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章