这是一个将正数十进制数转换为二进制数的简单程序。我必须报告并停止转换那些可能导致溢出或错误结果的数字。我发现整数的大小是4字节,但它只能正确转换为1023。 我很混淆数字“1023”从何而来?有没有什么方法可以计算,所以我可以预测什么是正确的范围,如果说,我正在另一个系统上编程。整数范围和上溢
#include<stdio.h>
int main(void)
{
int decimal,binary=0,y,m=1;
scanf("%d",&decimal);
if(decimal<=1023)
{
while(decimal>0)
{
y=decimal%2;
binary=binary+(m*y);
m=m*10;
decimal=decimal/2;
}
printf("\nBinary Equivalent is: %d",binary);
}
else
{printf("Sorry, The Number You've entered exceeds the maximum allowable range for conversion");}
getch();
return 0;
}
可以_使用if(decimal <= 2047)... m = m * 8; ...“二进制等效为:%o”'多一位数字。 – chux 2014-09-24 16:12:37