我在理解以下C++代码时遇到了一些麻烦:
std::cout << std::hex << 61183 << std::endl; // prints eeff
我正在使用小型字节序计算机(Intel x86-64),并且想从位和字节的 Angular 理解该结果的产生方式,因此我为最低有效位架构编写了下表。如您所见,我希望代码行的输出是
FFEE
而不是EEFF
。所以我在做那张桌子的时候一定错过了一些东西,但是我真的看不到什么。 std::hex
是否受计算机的字节序影响? 最佳答案
字节序是关于如何将数字存储在字节寻址的内存中。
另一方面,std::hex
生成十六进制文本。0x1000 * 14 + 0x100 * 14 + 0x10 * 15 + 0x1 * 15 == 61183
,因此61183
是十六进制的EEFF
。
这将不受字节顺序的影响。