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

标签 c++ hex byte endianness

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

std::cout << std::hex << 61183 << std::endl; // prints eeff
我正在使用 little-endian 机器(Intel x86-64),我想在位和字节级别了解该结果是如何产生的,因此我为最低有效位架构编写了下表。
enter image description here
如您所见,我希望代码行的输出为 FFEE而不是 EEFF .所以我在制作那张 table 时一定错过了一些东西,但我真的不明白是什么。是 std::hex受计算机字节序的影响?

最佳答案

字节序是关于如何将数字存储在字节寻址的内存中。
另一方面,std::hex生成十六进制文本。0x1000 * 14 + 0x100 * 14 + 0x10 * 15 + 0x1 * 15 == 61183 , 所以 61183EEFF十六进制。
这不会受到字节序的影响。

关于c++ - C++ std::hex 是否反转字节顺序? (将十进制打印为十六进制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63265586/

相关文章:

css - 浏览器如何处理 rgb(percentage);对于奇怪的数字

javascript - 使用 JavaScript 数学将字节转换为千兆字节

c# - 如何在 c#.net 中将结构转换为字节数组,但结构大小仅在运行时定义

c++ - 将对象指针传递给函数

c++ - 通过作为类的公共(public)成员的两个函数传递一个函数作为参数

c++ - 通过静态函数增加非静态变量

Python 二进制转十六进制

c++ - OpenJDK 源代码上的 JVM_ENTRY

地址栏中的Javascript,我该如何破译?

java - 将 byte[] 转换为 Java 字符串。添加一个?在每次转换中