1

反復を使用せずに n<16 の 10 進数を 2 進数に変換するコードを作成しようとしています。しかし、出力は常に 1000、100、10、または 1 のいずれかです。コードの何が問題なのですか? どうもありがとうございます

#include <stdio.h>

int main(void){
int decimal, bin = 0;
printf("Enter number to convert to base 2: ");
scanf("%d", &decimal);

if(decimal >= 8){
    bin += 1000;
    decimal = decimal%8;
}else if(decimal >= 4){
    bin += 100;
    decimal = decimal%4;
}else if(decimal >= 2){
    bin += 10;
    decimal = decimal%2;
}else if(decimal >= 0){
    bin += decimal%2;
}
printf("%5d", bin);
;
}
4

1 に答える 1