假设我有unsigned long long x = 0x0123456789ABCDEF
。
以下哪项是正确的? (我只能验证第一个):
67 45 23 01 EF CD AB 89
的形式显示在内存中。EF CD AB 89 67 45 23 01
的形式显示在内存中。01 23 45 67 89 AB CD EF
的形式显示在内存中。01 23 45 67 89 AB CD EF
的形式显示在内存中。答案 0 :(得分:10)
第一个是错的。在ia32上,至少布局为EF CD AB 89 67 45 23 01
。
其他人都是正确的。
答案 1 :(得分:4)
小端表示最低有效位在第一个字节中,大端表示最低有效位在最后一个字节中:
0x0123456789ABCDEF大端是0x01,0x23,0x45 ......
0x0123456789ABCDEF小端是0xEF,0xCD,0xAB ......
处理器的原生单词endianess和size是无关紧要的;记忆中的表象由端点决定。
答案 2 :(得分:1)
我认为32位解决方案非常适合编译器。它可以选择代表这种类型,只要它的大小是预期的,它就会以任何方式都缺乏原生支持。
64位我认为是正确的。