小编Ros*_*han的帖子

C++:将char*中的十六进制解释为uint8_t

我需要有一个以下格式的char*,它有一些十六进制值.

char *buf = new char(12);
buf[0] = 0x2;
buf[1] = 0x0;
buf[2] = 0x3;
buf[3] = 0x3;
buf[4] = 0x0;
buf[5] = 0x0;
buf[6] = 0x6;
buf[7] = 0x4;
buf[8] = 0x0;
buf[9] = 0x2;
buf[10] =0x0;
buf[11] =0x0;
Run Code Online (Sandbox Code Playgroud)

当我尝试以这种方式打印它们时 -

std::string hex_string;
create_hex_str((uint8_t*)buf, 12, hex_string);
std::cout << hex_string;
Run Code Online (Sandbox Code Playgroud)

打印功能的定义:

void create_hex_str(uint8_t *data, int len, std::string &tgt)
{
    std::stringstream ss;
    ss << std::hex << std::setfill('0');
    ss << "\n";
    for (int i=0; i<len; i++)
    {
        ss << std::setw(2) << static_cast<unsigned>(data[i]) …
Run Code Online (Sandbox Code Playgroud)

c++ hex char

1
推荐指数
1
解决办法
1741
查看次数

标签 统计

c++ ×1

char ×1

hex ×1