【发布时间】:2022-01-05 16:02:23
【问题描述】:
例如,我有一个名为 blocks_data 的 512 字节数组,我创建了一个 unsigned long long指针,指向数组中的 512 - 8 = 508 字节。我取消引用指针并分配一个值,让它成为3。据我所知,英特尔 x86_64 使用 little-endian 字节顺序。但是当我打印数组中的每个字节时,我会看到:
0 ...(54 zero bytes between)... 0 3 0 0 0 0 0 0 0
_ _ _ _ _ _ _ _
ulonglong in mem
而不是预期:
0 ...(54 zero bytes between)... 0 0 0 0 0 0 0 0 3
因为 little-endian 字节顺序必须意味着最低有效字节位于末尾。我做错了什么,可能不知道?
【问题讨论】:
-
en.wikipedia.org/wiki/Endianness 非常清楚地回答了您的问题。
-
Littleendian 意味着你从小端(鸡蛋)开始。术语来源于格列佛的书,好记。
标签: c++ memory endianness