我写的这段代码看起来不错,但输出总是 0 可能是什么问题?我只是在编写一个代码来从 x 数字系统转换为十进制。
#include <string>
#include <iostream>
using namespace std;
int main() {
string str;
long szam = 0, Dec, num, Base = 1, x,i=1;
cout << "the number : ";
cin >> str;
cout << "The input number system:";
cin >> x;
while (str[i] == '\0')
{
if (str[i] = 'A') { num = 10;}
else if (str[i] = 'B') { num = 11; }
else if (str[i] = 'C') { num = 12; }
else if (str[i] = 'D') { num = 13; }
else if (str[i] = 'E') { num = 14; }
else if (str[i] = 'F') { num = 15; }
else { num = str[i] - '0'; }
Dec = Dec + num * Base;
Base = Base * x;
}
cout << szam << endl;
return 0;
}
如果 x 小于 10 它很容易,但由于数字的字母使用,我无法处理 10+ 系统。