如何将 unsigned char 值表示为十六进制字符串?
How to represent unsigned char values as hexadecimal string?
我想将 unsigned char 数组内容转换为十六进制字符串表示形式。
任何人都可以提供功能或出路吗?
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);
我想获取一个 return 值 3374747372
作为字符或字符串。
更新:
这是我使用 @πάνταῥεῖ:
答案想出的功能我想让它变得更好,并使其更健壮地处理 unsigned char
就像 0x00,0x04,0x00,0x11
各种长度大小。
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();
}
I want to get a return values 3374747372
as char or string.
在这种情况下转换不起作用。
您可以使用文本格式化 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();
我想将 unsigned char 数组内容转换为十六进制字符串表示形式。
任何人都可以提供功能或出路吗?
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);
我想获取一个 return 值 3374747372
作为字符或字符串。
更新:
这是我使用 @πάνταῥεῖ:
答案想出的功能我想让它变得更好,并使其更健壮地处理 unsigned char
就像 0x00,0x04,0x00,0x11
各种长度大小。
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();
}
I want to get a return values
3374747372
as char or string.
在这种情况下转换不起作用。
您可以使用文本格式化 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();