c++ 实现 16进制转 10进制
时间: 2024-01-07 17:05:31 浏览: 164
C++中可以使用以下方法将16进制转换为10进制:
1. 使用标准库函数:可以使用`std::stoi`函数将16进制字符串转换为整数。例如:
```cpp
#include <iostream>
#include <string>
int main() {
std::string hexStr = "1A";
int decimal = std::stoi(hexStr, nullptr, 16);
std::cout << "Decimal: " << decimal << std::endl;
return 0;
}
```
输出结果为:Decimal: 26。
2. 使用流操作符:可以使用`std::hex`和`std::dec`流操作符来进行进制转换。例如:
```cpp
#include <iostream>
#include <sstream>
int main() {
std::string hexStr = "1A";
std::stringstream ss;
ss << std::hex << hexStr;
int decimal;
ss >> decimal;
std::cout << "Decimal: " << decimal << std::endl;
return 0;
}
```
输出结果为:Decimal: 26。
3. 手动转换:可以通过遍历16进制字符串的每个字符,并根据字符的ASCII码值计算出对应的10进制值。例如:
```cpp
#include <iostream>
#include <string>
int hexToDecimal(std::string hexStr) {
int decimal = 0;
for (char c : hexStr) {
decimal *= 16;
if (c >= '0' && c <= '9') {
decimal += c - '0';
} else if (c >= 'A' && c <= 'F') {
decimal += c - 'A' + 10;
} else if (c >= 'a' && c <= 'f') {
decimal += c - 'a' + 10;
} else {
// 非法字符处理
return -1;
}
}
return decimal;
}
int main() {
std::string hexStr = "1A";
int decimal = hexToDecimal(hexStr);
if (decimal != -1) {
std::cout << "Decimal: " << decimal << std::endl;
} else {
std::cout << "Invalid hex string" << std::endl;
}
return 0;
}
```
输出结果为:Decimal: 26。
阅读全文
相关推荐



















