当我们说一个特定的架构是小端或大端时,我们指的是数值重要性是从左到右还是从右到左存储在内存中。我的问题是:这种排序是指位或字节中的排序方式,还是字节在内存中的排序方式?
例如,考虑数字6000=1770h=0001011101110000b
。如果一个字节中的位和内存中的字节都是小端的,这将被存储为
00001110 11101000 = 0E E8,
如果字节中的位是大端的,但内存中的字节是小端的,这将被存储为(对于它的价值,这恰好是 Visual Studio 似乎告诉我内存是在 x64 架构中组织的)
01110000 00010111 = 70 17,
如果位是小端,但字节是大端,这将存储为
11101000 00001110 = 0E E8,
最后,如果位是大端,但字节是小端,这将被存储为
00010111 01110000 = 17 70
(希望我做对了。)
那么,“小端”和“大端”这两个术语究竟指的是什么?这些术语是指字节中位的顺序,还是内存中字节的顺序,或两者兼而有之?此外,如果 VS 告诉我,例如,7C
“在”给定的特定字节中,它们是否意味着在计算机内存中构成该字节的位是字面意思0111 1100
,或者它们只是意味着存储在该字节中的值是7Ch=124
,但实际上可能不表示为7c=01111100
取决于底层架构是否恰好是小端序?