除了`hex()`,还有哪些方式可以转换16进制字符串到整数?
时间: 2024-10-06 16:03:35 浏览: 102
javascript将16进制的字符串转换为10进制整数hex
除了使用`hex()`函数直接将16进制数字转换为整数,还可以手动逐位解析并转换。在C++中,可以这样做:
1. 使用`stringstream`和`std::stoi`(string to integer):
```cpp
#include <sstream>
std::stringstream ss("ABCD"); // 假设这是16进制字符串
unsigned int hexNum;
ss >> std::hex >> hexNum; // 转换为无符号整数
```
2. 或者使用迭代器和位运算:
```cpp
const char* str = "ABCD"; // 16进制字符串
unsigned int hexNum = 0;
for(size_t i = 0; i < sizeof(unsigned int)*CHAR_BIT / 4; ++i) {
hexNum <<= 4;
hexNum |= str[i] >= '0' && str[i] <= '9' ? str[i] - '0' : str[i] - 'A' + 10; // 大小写字母差异处理
}
```
这两种方法都可以把16进制字符串转换成对应的整数。
阅读全文