8

可能重复:
C++ 将十六进制字符串转换为有符号整数

我已经在谷歌上搜索过,但没有找到任何帮助。所以这是我的问题:我的字符串已经包含十六进制代码,例如:字符串 s1 = "5f0066",我想将此字符串转换为十六进制。我需要将字符串与我在二进制文件中读取的十六进制代码进行比较。

(只需要如何转换字符串的基本概念) 5f 最好的问候和感谢。

编辑:以 unsigned char 格式获取二进制文件信息。所以它的 0x5f ......希望有相同格式的字符串

4

3 回答 3

17

用作(仅在std:stoiC++11 中):

std::string s = "5f0066";
int num = std::stoi(s, 0, 16);

在线演示

于 2012-07-23T08:36:19.233 回答
14

使用stringstreamstd::hex

std::stringstream str;
std::string s1 = "5f0066";
str << s1;
int value;
str >> std::hex >> value;
于 2012-07-23T08:34:10.560 回答
7

strtol(str, NULL, 16)或者strtoul(str, NULL, 16)应该做你需要的。

strtol strtoul

于 2012-07-23T08:33:18.813 回答