64位值的Endian表示

bar*_*nos 7 c endianness 32bit-64bit

假设我有unsigned long long x = 0x0123456789ABCDEF.

以下哪项是正确的?(我只能验证第一个):

  • 在32位小端处理器上,它将在内存中显示为67 45 23 01 EF CD AB 89.
  • 在64位小端处理器上,它将在内存中显示为EF CD AB 89 67 45 23 01.
  • 在32位大端处理器上,它将在内存中显示为01 23 45 67 89 AB CD EF.
  • 在64位大端处理器上,它将在内存中显示为01 23 45 67 89 AB CD EF.

Ser*_* L. 10

第一个是错的.在ia32至少布局是EF CD AB 89 67 45 23 01.

其他是正确的.

  • 请注意,这个问题的答案不是由C标准决定的.整数表示由编译器制造商决定.编译器允许(虽然非常不方便)在little-endian硬件上以big-endian方式存储整数值. (4认同)