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

2022-08-20 12:21:08 字數 309 閱讀 2466

如何判斷乙個數是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即可。

實現:

bool powerof2(unsigned

int n)

2:

判斷乙個整數是否是2的n次方

參考 如題,如何判斷乙個整數是否是2的n次方,我能想到的方法有兩個 1.一直除2,看最後是否等於1.最笨的方法 2.轉換成2進製,看是否是這個樣子的 1,10,100,1000,10000,就是除了最高位是1,其他都是0,或者說只有乙個1.3.當我還在為我能想到第二個方法而沾沾自喜的時候,我看到了下...

判斷乙個整數是否為素數 確定乙個整數是否是2的冪

給定乙個整數,編寫乙個函式來確定它是否是2的冪。範圍 1 2 31 1 測試用例 輸入 16,輸出 true 因為 2 4 16 輸入 18,輸出 false.最明顯的暴力方法就是除以2,然後檢查它是否達到1。var poweroftwo function n 由於給出的範圍在0 2 31 1之間,...

如何判斷乙個正整數是否是4的冪?

4的冪具有的性質 4的冪用二進位制可表示為長度為奇數 2的偶數次冪 且只有首位為1的形式。證明 4n 22 n 22 n 4的冪減去1是3的倍數。證明 4n 1 3 n 1 3cn 1n 32cn 2n 3n 3 c n 1n 3cn 2n 3n 1 1 因此4 n 1 n 1 是3的倍數。乙個正整...