C++ std::hex 是否反转字节顺序?(将十进制打印为十六进制)

der*_*mai 1 c++ hex byte endianness

我在理解以下 C++ 代码时遇到了一些麻烦:

std::cout << std::hex << 61183 << std::endl; // prints eeff
Run Code Online (Sandbox Code Playgroud)

我正在使用小端机器(Intel x86-64),我想在位和字节级别了解该结果是如何产生的,因此我为最低有效位架构编写了下表。

在此处输入图片说明

如您所见,我希望代码行的输出FFEE不是EEFF. 所以我在制作这张桌子时一定错过了一些东西,但我真的不知道是什么。是否std::hex受计算机字节序的影响?

Mik*_*CAT 6

Endianness 是关于如何在字节寻址内存中存储数字。

另一方面,std::hex生成十六进制文本。

0x1000 * 14 + 0x100 * 14 + 0x10 * 15 + 0x1 * 15 == 61183,所以61183是EEFF十六进制的。

这不会受到字节顺序的影响。