我正在尝试编写一个代码,用于在不使用迭代的情况下将 n<16 的十进制转换为二进制。但输出始终是 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);
;
}