0
我知道unsigned long
高达4294967295而已,所以这里是我的问题,当用户输入多的数字(如结果是要超过上限值)转换后的数字将是多么4294967295。 例如:转化基地11十进制
Base 11: 1928374192847
Decimal: 4294967295
的结果应该是5777758712535.如何解决这个限制? vb6.0需要给我们。 这里是我的代码:
cout << "\t\t CONVERSION\n";
cout << "\t Base 11 to Decimal\n";
cout << "\nBase 11: ";
cin >> str;
const auto x = str.find_first_not_of("aA");
if (x != string::npos)
{
std::cout << "Invalid Input\n\n";
goto a;
}
unsigned long x = strtoul(str.c_str(), NULL, 11);
cout << "Decimal: " << x << "\n\n";
程序应该说“超出范围”如果结果将超过4294967295 对不起我只是个初学者。
[性病:: strtoul将(http://en.cppreference.com/w/cpp/string/byte/strtoul)将让你知道,如果有一个误差范围。需要我们 – wally
*** *** VB6.0我想你指的Visual C++ 6.0。该代码不是Visual Basic。 – drescherjm
@drescherjm幸运的代码兼容。 –