我在理解以下 C++ 代码时遇到了一些麻烦:
std::cout << std::hex << 61183 << std::endl; // prints eeff
我正在使用 little-endian 机器(Intel x86-64),我想在位和字节级别了解该结果是如何产生的,因此我为最低有效位架构编写了下表。如您所见,我希望代码行的输出为
FFEE
而不是 EEFF
.所以我在制作那张 table 时一定错过了一些东西,但我真的不明白是什么。是 std::hex
受计算机字节序的影响?
最佳答案
字节序是关于如何将数字存储在字节寻址的内存中。
另一方面,std::hex
生成十六进制文本。0x1000 * 14 + 0x100 * 14 + 0x10 * 15 + 0x1 * 15 == 61183
, 所以 61183
是 EEFF
十六进制。
这不会受到字节序的影响。
关于c++ - C++ std::hex 是否反转字节顺序? (将十进制打印为十六进制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63265586/