我的程序应将十进制数转换为二进制数。 第一个for循环用于计算二进制数。 第二个循环将msb放入数组的第一个元素中。 这是一个练习,MSB必须在第一个元素。 我不明白错误在哪里,非常感谢帮助。将十进制数转换为二进制数
#include<stdio.h>
#include<stdlib.h>
int main(void){
int i;
int bits[16];
int bits_2[16];
int number;
int decimal;
int rest;
int msb;
int result=1;
printf("Input number smaller than 65536: ");
scanf("%d", &decimal);
if(decimal >= 65536) {
printf("\n\nincorrect input!");
return EXIT_FAILURE;
}
number=decimal;
for(i=0; result!=0; i++){
result = decimal/2;
rest = result %2;
bits[i]=rest;
msb = i;
return msb;
}
printf("\n\n %d as binary number : ", number);
for(i=msb; bits[i]>=bits[0]; i--){
bits_2[msb-i] = bits[msb];
printf("%d", bits_2[msb-i]);
}
return 0;
}
一个可能的问题em是for循环中的'return msb;'。你从主函数返回,然后程序退出,可能不是你想要的。 – Jite
究竟是什么问题? – Mureinik
@Mureinik我没有得到二进制数。 – cauchy100000