c++ - 打印时 UINT16 值显示为 "backwards"

标签 c++

我有一个 UINT8 指针 mArray,它通过 *(UINT16 *) 转换分配信息。例如:

int offset = someValue;
UINT16 mUINT16 = 0xAAFF
*(UINT16 *)&mArray[offset] = mUINT16;

for(int i = 0; i < mArrayLength; i++)
{
    printf("%02X",*(mArray + i));
}

output:   ... FF AA ...
expected: ... AA FF ...

当它达到偏移量时,我期望打印的值是 AA FF,但打印的值是 FF AA,我一直想不通为什么。

最佳答案

你正在使用一个小端机器。

关于c++ - 打印时 UINT16 值显示为 "backwards",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1288761/

相关文章:

c++ - 在 C++ 中搜索结构 vector 并输出元素

c++ - 链接时未定义对 CryptoPP::AlignedAllocate 的引用

c++ - 将 int 映射到模板 int

C++ primer 加 Chapter14 无类型堆栈

c++ - '*' 标记之前的预期主表达式?

c++ - 递归地打印一个类内部的链表c++

c++ - GLSL 每像素照明问题

c++ - 如何将 std::vector<char*> 转换为 char**?

c++ - QT - 将文件复制到 AppData

c++ - 调用 PsGetProcess 时链接器错误 undefined reference