用C++编写用函数实现将一个以字符串形式表示的十六进制数转换为一个十进制整数。例如,输入”A2”转换为162。
时间: 2024-12-11 13:43:40 浏览: 7
C++实现十六进制字符串转换为十进制整数的方法
在C++中,你可以创建一个函数来实现这个功能,通常使用标准库中的`std::stringstream`和`std::hex`流控制符来解析十六进制字符串。以下是一个简单的示例函数:
```cpp
#include <string>
#include <sstream>
#include <vector>
// 函数模板用于处理任意长度的十六进制字符串
template <typename T>
T hexToDecimal(const std::string& hexStr) {
std::istringstream iss(hexStr);
T decimal;
iss >> std::hex >> decimal; // 将十六进制字符串转换为十进制
return decimal;
}
int main() {
std::string hexString = "A2";
int decimalValue = hexToDecimal<int>(hexString);
std::cout << "Hexadecimal string " << hexString << " is equivalent to decimal " << decimalValue << std::endl;
return 0;
}
```
在这个例子中,`hexToDecimal`函数接收一个十六进制字符串作为输入,然后用`std::hex`设置输入流的格式为十六进制,接下来直接读取并返回结果。注意这里使用了`template`来支持不同的数据类型,如`int`, `long`, `unsigned long long`等。
阅读全文