反復を使用せずに 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);
;
}