Big Endian(大端)指最高有效字節(jié)在內(nèi)存的低地址位;Little Endian(小端)指最低有效字節(jié)在內(nèi)存的低地址位。
具體來說,對于單個(gè)字節(jié)的數(shù)據(jù),不存在大小端的問題斟珊。對于多字節(jié)的數(shù)據(jù)類型,其字節(jié)是如何在內(nèi)存中分布的呢验靡? 比如一個(gè)int倍宾,在32位的機(jī)器上占用4個(gè)字節(jié),假定其值為0x12345678胜嗓,內(nèi)存地址為0x1000 - 0x1003高职,那么這個(gè)值在0x1000、0x1001辞州、0x1002怔锌、0x1003上的分布見下表:
0x1000 | 0x1001 | 0x1002 | 0x1003 | |
---|---|---|---|---|
Big Endian | 12 | 34 | 56 | 78 |
Little Endian | 78 | 56 | 34 | 12 |
大小端只是存儲的一個(gè)原理,取決于主機(jī)和操作系統(tǒng)变过,而且不光出現(xiàn)在內(nèi)存中埃元,因此實(shí)際編程中對于有些I/O操作可能需要對字節(jié)序有一個(gè)更靈活的考慮。大端更符合人的閱讀習(xí)慣媚狰,不過對于機(jī)器來說就不存在這個(gè)問題了岛杀。