【发布时间】:2013-09-30 14:01:04
【问题描述】:
我已经对如何将 int 转换为 Hex 字符串进行了一些研究,并找到了 answer,但是我需要的有点不同,如下面的代码所示:
int addr = 5386; //
std::string buffer = "contains 0xCCCCCCCC as hex (non ASCII in the string)";
size_t idx = 0;
idx = buffer.find("\xCC\xCC\xCC\xCC", idx);
if (idx != string::npos) buffer.replace(idx, 4, XXX); // here i want to put the addr variable but as 0x0000150A
我需要一种将addr 变量转换为在"\x0a\x15\x00\x00" 等字节之间包含\x 的十六进制字符串的方法
提前致谢。
【问题讨论】:
-
缓冲区包含八个字符“C”(0x43),但您搜索的是字符(0xCC)。这将不匹配。你想达到什么目标?
-
@harper 不,正如我写的那样,缓冲区实际上包含 4 个字节,如
cc:cc:cc:cc -
您的源代码有 8 个字符“CCCCCCCC”。把它折叠成四个字节是一项艰巨的工作。
-
stackoverflow.com/questions/5100718/int-to-hex-string-in-c 使用
提供了一个很好且简单的答案