c ++将字符串转换为十六进制

时间:2012-07-23 08:28:28

标签: c++ string hex

  

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

我已经在google上搜索过但没有找到任何帮助。 继承我的问题: 我有完全包含十六进制代码的字符串,例如:string s1 =“5f0066” 我想将此字符串转换为十六进制。 我需要将字符串与我在二进制文件中读取的十六进制代码进行比较。

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

编辑:获取unsigned char格式的二进制文件信息。那么它的0x5f ...... 我喜欢用相同格式的字符串

3 个答案:

答案 0 :(得分:14)

使用 stringstream std::hex

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

答案 1 :(得分:12)

使用std:stoi(仅限C ++ 11):

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

Online demo

答案 2 :(得分:6)

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

strtol strtoul