這是一個將正數十進制數轉換爲二進制數的簡單程序。我必須報告並停止轉換那些可能導致溢出或錯誤結果的數字。我發現整數的大小是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