#include
#include
int main()
int n = 0;
int i = 0;
int s = 0; //商
int y = 0; //餘數
int arr[20] = ;
printf("輸入乙個正整數:
");
scanf_s("%d", &s);
//迴圈做除法用陣列記錄餘數
while (s != 0 )
y = s % 2;
s = s / 2;
arr[i] = y;
i++;
//逆序輸出餘數陣列
printf("該正整數的二進位制數為:
");
for (i = i - 1; i >= 0; i--)
printf("%d", arr[i]);
//記錄餘數陣列中
1的個數
if (arr[i] == 1)
n++;
printf("\n");
printf("該正整數的二進位制數中
1的個數為:
%d\n", n);
system("pause");
return 0;
數值轉換 十進位制正整數轉二進位制
今天朋友去面試,問到一基礎題,實現正整數到二進位制的轉換。因為對基礎掌握的不牢,此題並未能做出正確解答。我在給他講解一番後,他恍然大悟。對於十進位制正整數到二進位制的轉換其實很簡單,用2輾轉相除至結果為1,將餘數和最後的1從下向上倒序寫,就是整數所對應的二進位制值。例如5的二進位制就是101 如圖 ...
50 輸出正整數對應的二進位制數
50 輸出正整數對應的二進位制數 問題描述 輸入乙個十進位制正整數,輸出它的二進位制數。輸入說明 你的程式需要從標準輸入裝置 通常為鍵盤 中讀入多組測試資料。每組輸入資料由一行組成,其中包含乙個正整數n,0 n 1024,所有資料前後沒有多餘的空格,兩組資料之間也沒有多餘的空行。輸出說明 對每組測試...
求逆轉乙個整數的二進位制表示
解法一 這個容易理解。cpp view plain copy 解法一 define unsigned bits count 32 unsigned int bitrev3 unsigned intinput 我的格式,先不考慮符號問題 int reverse int n return ret 解法二...