auの日記

プログラミング初心者の日記。(auはハンドルネームです)

C言語で10進数で入力された文字を2進数に変換する

auです。
今回は10進数を2進数に変換するプログラムを組みました。

元々はシフト演算子について調べていたのですが、10進数を2進数に変換する方法を調べていたら組みたくなったので組んでみました。

#include <stdio.h>

int main(void) {
    int decimal = 0;
    int binary = 0;
    int n = 1;
    
    printf("10進数の入力: ");
    scanf("%d", &decimal);
    
    while (decimal > 0) {
        binary = binary + (decimal % 2) * n;
        decimal /= 2;
        n *= 10;
    }
    
    printf("2進数: %d\n", binary);
    return 0;
}

// 実行結果
10進数の入力: 10
2進数: 1010

組んでみて思ったのですが、これは2進数に見える10進数にしただけな気がします。シフト演算子についてはまた調べてみたいと思います。