如果用戶用二進制輸入一個非常大的數字,輸出顯示爲0,那麼如何修改這個函數來處理更大的數字呢?Base2到Base10轉換器將不能使用非常大的數字?
{
// Binary to Decimal converter function
int bin_Dec(int myInteger)
{
int output = 0;
for(int index=0; myInteger > 0; index++)
{
if(myInteger %10 == 1)
{
output += pow(2, index);
}
myInteger /= 10;
}
return output;
}
int _tmain(int argc, _TCHAR* argv[])
{ // start main
int myNumber;
// get number from user
cout << "Enter a binary number, Base2: "; // ask for number
cin >> myNumber;
//print conversion
cout << "Base10: " << bin_Dec(myNumber) << endl; // print conversion
system("pause");
} // end of main
}
'999'不是基數2的數字。 '1000'是,它可以和你的代碼一起工作。你遇到的真正問題是什麼?什麼具體是不適合你的輸入? – 2013-03-09 17:36:40
不知道你在這裏問什麼...程序希望你輸入一個*二進制*數字。輸入'999'就不行。順便說一句,寫它的方式,它將接受的最高二進制數是1111111111(= 10位數)。它會輸出的最高數字是2023. – Hazzit 2013-03-09 17:38:24