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

2021-09-24 11:50:43 字數 619 閱讀 7262

2019獨角獸企業重金招聘python工程師標準》

輸入乙個整數,求該整數的二進位制表達中有多少個 1。

例如輸入 10,由於其二進位制表示為 1010,有兩個 1,因此輸出 2。

解法一是普通處理方式,通過除二餘二統計1的個數;

解法二與解法一類似,通過向右位移依次處理,每次與1按位與統計1的個數

解法三比較奇妙,每次將數字的最後一位處理成0,統計處理的次數,進而統計1的個數

#include "stdio.h"

#include "stdlib.h"

int count1(int x);

int count2(int x);

int count3(int x);

int main(void)

//除二、餘二依次統計每位

int count1(int x)

return c;

}//向右移位,與1按位與統計每位

int count2(int x)

return c;

}//每次將最後乙個1處理成0,統計處理次數

int count3(int x)

return c;

}

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

出自 題目 輸入乙個整數,求該整數的二進位制表達中有多少個1。例如輸入10,由於其二進位制表示為1010,有兩個1,因此輸出2。分析 這是一道很基本的考查位運算的面試題。包括微軟在內的很多公司都曾採用過這道題。乙個很基本的想法是,我們先判斷整數的最右邊一位是不是1。接著把整數右移一位,原來處於右邊第...

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

給出通常能想到的方式,這兩種方式在 c和指標 一書中給出。以下討論的均為非負整數。該方法每次在迴圈中判斷數的二進位制最右一位是否為1 如果該數能不能被2整除 每次迴圈後該數右移一位。因此遍歷了數的二進位制表示的每一位。int count one bits1 int value 與上邊方法類似,也是每...

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

題目 輸入乙個整數,求該整數的二進位制表達中有多少個1。例如輸入10,由於其二進位制表示為1010,有兩個1,因此輸出2。分析 這是一道很基本的考查位運算的面試題。包括微軟在內的很多公司都曾採用過這道題。乙個很基本的想法是,我們先判斷整數的最右邊一位是不是1。接著把整數右移一位,原來處於右邊第二位的...