c++ - int 到十六进制字符串 (C++)

标签 c++ string hex

我研究了如何将 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 之类的字节之间具有 \x\x00\x00"

提前致谢。

最佳答案

也许这个程序可以帮到你:

#include <sstream>
#include <iomanip>
#include <iostream>

int main(int argc, char const *argv[])
{
    int a = 5386;

    std::ostringstream vStream;
    for(std::size_t i = 0 ; i < 4 ; ++i)
        vStream << "\\x"
                << std::right << std::setfill('0') << std::setw(2) << std::hex
                << ((a >> i*4) & 0xFF);

    std::cout << vStream.str() << std::endl;

    return 0;
}

我不确定我是否准确地理解了您的问题,但我知道您希望将 int 转换为格式为“\xAA\xAA\xAA\xAA”的字符串。

它使用std::rightstd::setfill('0')std::setw(2) 来强制“2”的输出为“02”。 std::hex是获取一个整数的十六进制表示。

关于c++ - int 到十六进制字符串 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19096185/

相关文章:

c++ - gtkmm:什么是 Glib::RefPtr 用例?

c++ - 为什么不能实例化带有 "non const"复制构造函数的对,而没有实例化一对是可能的?

c++ - CMake 正则表达式匹配包含声明中的 header 名称

c++ - 奇怪的程序挂起,这在调试中意味着什么?

数字系统代码中的Java数字格式异常错误

php XML DOM 将特殊字符转换为 and#xYY;

javascript - jQuery/JavaScript - 字符串替换

python - 从文本文件的行中提取数据

python - Regex 模式前的 'r' 是什么意思?

c - 当你除以十六进制时,你会得到什么?