如何将无符号字符值表示为十六进制字符串
How to represent unsigned char values as hexadecimal string?
我想将无符号字符数组内容转换为十六进制字符串表示形式。
任何人都可以帮助功能或出路吗?
unsigned char codeslink[5] ={ 0x33, 0x74, 0x74, 0x73, 0x72};
std::string my_std_string(reinterpret_cast<const char *>(codeslink), 5);
std::string my_std_string((const char *)codeslinks);
我想获取3374747372
字符或字符串的返回值。
更新:这是我使用答案想出的功能@πάνταῥεῖ:
我想让它变得更好,并使其能够处理各种长度尺寸的0x00,0x04,0x00,0x11
等unsigned char
。
std::string Return_Uchar_To_String(unsigned char uns_char, size_t uns_char_len)
{
std::ostringstream oss;
oss << std::hex << std::setw(2) << std::setfill('0');
for(size_t i = 0; i < uns_char_len; ++i)
{
oss << (unsigned int)uns_char[i];
}
return oss.str();
}
我想获取
3374747372
字符或字符串的返回值。
在这种情况下,强制转换不起作用。
您可以使用文本格式 IO 来获取数组内容的十六进制字符串表示形式:
unsigned char codeslink[5] ={ 0x33, 0x74, 0x74, 0x73, 0x72};
std::ostringstream oss;
oss << std::hex << std::setfill('0');
for(size_t i = 0; i < 5; ++i) {
oss << std::setw(2) << (unsigned int)codeslink[i];
}
std::string result = oss.str();
现场演示
相关文章:
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- C++ 将十六进制字符串表示形式转换为十六进制字符串表示形式
- 如何将由一系列十六进制值表示的枚举附加到 QByteArray?
- 十六进制 QString 表示为无符号字符数组
- 如何在 c++ 中将字节转换为 ASCII 十六进制表示形式?
- 以十六进制格式表示 fp16 最小数
- 如何转换由字符表示的十六进制值
- SHA-256的双分部分的十六进制表示
- 如何将字符串转换为十六进制表示形式
- 当传递表示负值的十六进制时,C++stoll抛出超出范围的异常
- Aho Corasick Algo在c/c++中表示十六进制
- 用十六进制表示法编写代码有什么意义
- 如何将无符号字符值表示为十六进制字符串
- 以十进制、八进制和十六进制表示法标识整数文本是否与转义字符中的整数文本相同
- 将字符串转换为Unicode十六进制表示形式,然后返回C++
- Codekata将数字从十六进制转换为十进制整数表示形式
- 将文本十六进制转换为实十六进制表示C++
- 在c++中将N位int表示为十六进制
- 如何查找给定的字符串是否符合十六进制表示法,例如不带正则表达式的0x34FF
- 以十六进制表示法(0xABCDEF)将字节缓冲区的字节输出到控制台输出流