C ++字符串转换为十六进制[重复]

问题描述 投票:5回答:3

可能重复: C++ convert hex string to signed integer

我媒体链接搜查谷歌,但没有发现任何帮助。所以,我的继承人问题:我有一个媒体链接包含十六进制代码例如: - 字符串S1 =“5f0066”字符串,我想这个字符串转换为十六进制。我需要比较与十六进制代码我在二进制文件中读过的字符串。

(只需要基本的想法如何将字符串转换)5F最好的问候和感谢。

编辑:得到了在无符号字符格式的二进制文件信息。所以其0x5F的...希望有相同的格式字符串德

c++ string hex
3个回答
14
投票

使用stringstreamstd::hex

std::stringstream str;
std::string s1 = "5f0066";
str << s1;
int value;
str >> std::hex >> value;

12
投票

使用std:stoi如(在C ++ 11只):

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

Online demo


6
投票

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

strtol strtoul

© www.soinside.com 2019 - 2024. All rights reserved.