C++ 将字节(无符号字符)转换为十六进制字符串

问题描述 投票:0回答:1

我这里有一段代码:

    unsigned char a = 0xF1;
    std::stringstream hexStr;
    hexStr << hex << a;
    string b = hexStr.str();
    cout << b << endl;

它将

plusorminus
字符/字符串输出到命令行。 我希望
b
成为
"F1"

c++ string hex
1个回答
0
投票

你的代码只有一个小错误。 std::hex 仅适用于 int,这意味着您在将 a 插入字符串流时将其转换为 int。

unsigned char a = 0xF1;
std::stringstream hexStr;
hexStr << hex << static_cast<int>(a);
string b = hexStr.str();
cout << b << endl;
© www.soinside.com 2019 - 2024. All rights reserved.