輸入int型整數,求出其二進位制形式中的1 的個數。
解題思路:
十進位制的數轉換為二進位制,用十進位制整數反覆對2取餘,保留餘數,再倒序輸入就可以得到該整數的二進位制形式。第一次取餘得到的是最右邊第一位二進位制數,要得到下一位二進位制需要對原數值除以2,再取餘,取餘得到的是依次往左的二進位制位。
#include
int main()
else
a /= 2;
}printf("number %d has %d 1\nenter a new number(q to quit):\n",n,i);
}
return 0;
}
輸出示例:
please input a integer number(q to quit):
8number 8 has 1 1
enter a new number(q to quit):
7number 7 has 3 1
enter a new number(q to quit):
255number 255 has 8 1
enter a new number(q to quit):
q
求二進位制中1的個數
在 程式設計之美 一書中有一節提到如何求乙個位元組的無符號整型變數二進位制表示中中1的個數,主要提到了四種方法。下面簡單介紹一下 1.求餘法 在將十進位制數轉換為二進位制數時,採用除2取餘法。將每次除2得到的餘數儲存起來逆序輸出便是該十進位制整數的二進位制表示。因此可以採用這種方法去統計1的個數。i...
求二進位制中1的個數
解法有很多種 以乙個位元組無符號位元組變數作為例子 解法一 求餘法 在將十進位制數轉換為二進位制數時,採用除2取餘法。將每次除2得到的餘數儲存起來逆序輸出便是該十進位制整數的二進位制表示。因此可以採用這種方法去統計1的個數。public int count byte n return sum 解法二...
求二進位制中1的個數
這是乙個經常會在筆試和面試中遇到的題目,今天我做到了這個題目,就來分享一下我對這個題目的解決思路。首先拿到這個題目,我們的基本思路是 先判斷最後一位是否為1,接著把數字依次右移,判斷每一位是否為1,直到整數變為0為止。基於這個思路我們可以寫下如下的 int count int n n n 1 ret...