Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
6个月前关闭。
我需要进行这种转换,但是没有任何线索。有人能帮我吗?我需要它来完成基本转换的计算器。我还需要该函数返回一个整数以转换为在其他函数中使用。
PS:对不起,我的英语不好。
我希望11F为整数287。
这样称呼:
顺便说一句,使用
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
6个月前关闭。
我需要进行这种转换,但是没有任何线索。有人能帮我吗?我需要它来完成基本转换的计算器。我还需要该函数返回一个整数以转换为在其他函数中使用。
PS:对不起,我的英语不好。
我希望11F为整数287。
最佳答案
这是递归的:
int hexToBase10(const std::string& number, size_t pos = 0) {
if (pos == number.length())
return 0;
char digit = number[number.size() - pos - 1];
int add = digit >= '0' && digit <= '9' ? digit - '0'
: digit - 'A' + 10;
return 16 * hexToBase10(number, pos + 1) + add;
}
这样称呼:
hexToBase10("11F"); // 287
顺便说一句,使用
std::hex
似乎更安全。