判斷乙個整數二進位制下1的個數

2021-08-28 03:09:50 字數 569 閱讀 9714

1.最容易想到的就是 n&1 得到最後一位是不是 1 ,然後再將 n>>1 這樣迴圈(int)32次就可以得到1的個數,但是這樣n為負數時會陷入死迴圈

2.不如換乙個思路設定乙個 i ,每次讓i>>1這樣就不會對n進行修改,避免了死迴圈

public static int getnum3(int n) 

return count;

}

3.n&(n-1)  每次都會將最右邊的1 變成 0,利用這個特性

public static int getnum(int n) 

return count;

}

4.乙個有趣的遞迴求解正整數1 的個數,

只能正整數n是偶數,那麼n的二進位制中1的個數與n/2中1的個數是相同的

奇數 n中1的位數等於n/2 +1 中的個數

public static int getnum2(int n)
參考了

整數的二進位制中1的個數

資料結構與演算法分析

計算乙個整數二進位制中1的個數

這是來自牛客網關於乙個二進位制的運算 我的思路為每次和1 2 4 進行按位與運算就可得到二進位制中1的個數 如下 1 2 new coder ponint to offer 11 3 find bit 1 num of a nunber 4 56 include 7 include 8 9int f...

計算乙個整數二進位制中1的個數

這是來自牛客網關於乙個二進位制的運算 我的思路為每次和1 2 4 進行按位與運算就可得到二進位制中1的個數 如下 1 2 new coder ponint to offer 11 3 find bit 1 num of a nunber 4 56 include 7 include 8 9int f...

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...