判斷乙個數是2的整數次冪

2021-08-09 06:19:19 字數 717 閱讀 8374

private

static

boolean

ispoweroftwo(int val)

或者private

static

boolean

ispoweroftwo(int val)

例如:

val= 8,用二進位制表示: 1000

val - 1 = 7, 用二進位制表示:0111

val $ (val-1) = 0

原理:在二進位制中,乘以2相當於左移一位,所以2的整數次冪,相當於左移了n位,表示為100..00,而減一後,即為011..11,它們的與結果等於0.

機器是使用補碼來計算的,而不是用機器碼,詳情可檢視我的另一篇部落格

比如:4

4的機器碼: 00000000 00000000 00000000 000000100

-4的機器碼:10000000 00000000 00000000 000000100

4的補碼:00000000 00000000 00000000 000000100

-4的補碼: 11111111 11111111 11111111 11111111 111111100

4 & -4 = 4

原理還是基於二進位制中,2 的冪次的表達形式

判斷乙個數是否是2的整數次冪

title iscompletepower description 判斷乙個數是否是2的整數次冪 判斷原理 2的整數次冪,都是以1開頭,其餘其餘位為0的形式 例如 8的二進位制形式為 1 0 0 0 這樣的乙個數進行 1後,所得數的各位都會和原數的各位成反碼 例如 7的二進位制形式位 0 1 1 1...

java 判斷乙個數是否是2的整數次冪

有一道演算法題是這樣的,求乙個數是否是2的整數次冪。剛開始我的演算法是這樣寫的 讓這個數每次都除以2,然後再乘以2,看這兩個數是否相等,不相等就返回false。放在迴圈裡面讓它從頭除到尾。public boolean ispower intnumber else else return true 用...

判斷乙個數是否是2的整數次冪,python實現

問題 判斷乙個數是否是2的整數次冪?分析一 判斷乙個數是否是是2的整數次冪。方法和思路也很多,其中最簡單的就是,用這個數除以2用除的商再除以2,直到最後被除數為2,證明這個數是2的整數次冪。這種思路簡單,但是略顯笨重。我們採用第二種思路。分析二 由於2這個數在計算機中是乙個比較特殊的數。計算機是以二...