在 c++ 中以十六进制格式打印无符号字符(BYTE).使用 std::cout
Printing unsigned char(BYTE) in Hex format in c++. Using std::cout
我已经浏览了这个主题的所有先前版本,似乎没有一个有帮助。 我有一个位于无符号字符中的值,称为偏移量。 当打印它时,printf("%02Xn", Offset);
它会打印出正确的值,即0x2B。 虽然当我尝试使用std::cout << std::hex << Offset << std::endl;
它总是打印不同的值。 我也尝试过:
std::cout << std::hex << (unsigned int)Offset << std::endl;
std::cout << std::hex << static_cast<unsigned>(Offset) << std::endl;
尽管似乎没有人打印出正确的值。
正如您unsigned char Offset = 0x2B;
这样定义"偏移量"时,偏移量的类型现在是unsigned char
,您不能将unsigned char
变量打印为std::hex
。 您必须先将其转换为std::hex
类型,然后打印出来。
#include <iostream >
int main() {
unsigned char Offset = 0x2B;
printf("%02Xn", Offset);
std::cout << std::hex << Offset << std::endl;
std::cout << std::hex << (unsigned int)Offset << std::endl;
std::cout << std::hex << static_cast<unsigned>(Offset) << std::endl;
return 0;
}
相关文章:
- std::byte 指针应该用于指针算术吗?
- 在 Eclipse 上启用 C++17 以使用 'std::byte'
- FreeFileSync C++错误:'byte'不是 'std' 的成员
- 为什么从 char 转换为 std::byte 可能是未定义的行为?
- 在 c++ 中以十六进制格式打印无符号字符(BYTE).使用 std::cout
- C++ 无法将 std::vector<BYTE> 转换为字符串或字符数组
- Visual accept std::string from std::byte iterator
- 无法初始化以 std::byte 作为成员类型的位字段
- 在 C++17 中表示 std::byte 文字的正确方法是什么?
- std::byte 可以取代 std::aligned_storage 吗?
- 初始化 std::byte 容器的正确方法
- 哈希输出为 BYTE 而不是 std::string
- 在 C++ 中转换 std::string,使其可以是 C# 中的 byte[]
- 如何使用类似"std::basic_istream<std::byte>"之类的东西
- '&'在"std::vector<byte>& stream;"中代表什么
- C++ 17 中的 std::byte 等同于 C# 中的字节
- 无法将二进制文件读取到 std::vector<std::byte> 中C++
- std::ifstream 将文件读取为 BYTE(无符号字符)而不是字符
- 如何使用期望"const char*"的接口,如果我正在使用"std::byte's
- C++17标准是否包括"std::byte"?