C语言(CED)判断一个数是否是2的整数幂的简便方法!
生活随笔
收集整理的這篇文章主要介紹了
C语言(CED)判断一个数是否是2的整数幂的简便方法!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正如大家所熟知的那樣,我們輸入到計算機中的數據,都是以二進制的格式保存處理的,所以此方法就是利用這一特點來進行判別!(除2的零次方)
將2的整數冪次方轉換為二進制后,仔細觀察后會很容易發現一個特點:整串數字中只有一個1,在其后跟了多個0.
比如:
2:10;
4:100;
8:1000;
? ? ? ·
? ? ? ·
? ? ? ·
128:10000000
所以我們只要判斷1后面是否跟了若干個0就可以了。
那么我們又會發現:這個數減去1的差,原來的那個“1”變為“0”,那n個“0”變為了“1”;緊接著將原來的數和減去1后的數進行“與”運算后會發現最終結果一定是“0”。
所以轉換為代碼:
??
(number & number - 1) == 0
?
總結
以上是生活随笔為你收集整理的C语言(CED)判断一个数是否是2的整数幂的简便方法!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家里装修想买威欧浩思的铝制家具,怎么样?
- 下一篇: 背景墙用天然大理石好还是岩板好啊?求介绍