Test Message

a034: 二進位制轉換

內容

還記得計算機概論嗎?還記得二進位嗎?

現在我們來計算一下將一個 10 進位的數字換成二進位數字


輸入

一個十進位的數值

3
6

輸出

輸出二進位制的結果

11
110


解題思路

  1. 取目標二進制的最低位元,放到輸出
  2. 將目標右移 1 位元
  3. 判斷目標是否為 0,是就輸出答案,大於 0 則回到(1.)

完整程式碼

AC (2ms, 64KB)
#include <stdio.h>

int n;
char out[35], * ans;
int main()
{
while (scanf(" %d", &n) == 1)
{
ans = &out[34];
while (n)
{
*ans-- = (n & 1) + '0';
n >>= 1;
}
puts(++ans);
}
return 0;
}