查詢2進製中1的個數

2021-09-24 05:18:36 字數 828 閱讀 9993

這個題目有很多種解法,我們可以一一枚舉出來

第一種分析:在32位的二進位制中,給出乙個1001010的一連串的數,我們就可以聯想到與 1& 得出想要的結果。

移動可分為兩種,可以將二進位制數向右移動,或者將1向左移動

向右移動時&出來的得數要和1向右的得數相等就證明有1。

scanner sc=new scanner(system.in);

int s=sc.nextint();

//轉換為二進位制

system.out.println(integer.tobinarystring(s));

int count=0;

for(int i=0;i<32;i++)

} system.out.println(count);

第二種方法

逐個減一

scanner sc=new scanner(system.in);

int s=sc.nextint();

//轉換為二進位制

count=0;

while(s!=0)

system.out.println(count);

}

第三個方法

乙個二進位制除以乙個2,原來的數字就會減去乙個0,如果有餘數那麼當前位置就為1。

static int count(int s1)

s1=s1/2;

} return num;

}

還有查表法,還有分支操作等等,感興趣可以自己去查詢。

希望大家能看的懂,不懂可以問我很樂意為你們服務。

求乙個數2進製中1的個數

include include int count one bits unsigned int value int i 0 int count 0 for i 0 i return count int main 方法2 進行32次迴圈,把這個數 1,把結果加到計數器,把這個數右移一位,直到退出迴圈。...

查詢輸入整數二進位制中1的個數

譬如 輸入5 5的二進位制為101,輸出2 輸入乙個整數 計算整數二進位制中1的個數 常規做法,迴圈判斷2出現的次數,通過對2取餘看第 i 位是否為1。注意!要用unsigned型別,否則n n 2在負數的情況下只有0 右移會出錯 include using namespace std int ma...

查詢輸入整數二進位制中1的個數

請實現如下介面 public static intfindnumberof1 int num 譬如 輸入5 5的二進位制為101,輸出2 輸入描述 輸入乙個整數 輸出描述 計算整數二進位制中1的個數 解題思路 本題是計算乙個數二進位制表示中1的個數,通過 n i 1可以獲取第i位的二進位制值,每次n...