為什么要區(qū)分大小端,是因為在內(nèi)存中一般是以字節(jié)為單位,一個字節(jié)有8bit。但是,很多的數(shù)據(jù)長度卻超過8bit,那么就會存在多字節(jié)排序的問題,數(shù)據(jù)高低字節(jié)的排序就會出現(xiàn)問題,從而產(chǎn)生了大小端兩種存儲模式。以便于規(guī)范和統(tǒng)一數(shù)據(jù)的存儲順序。
大端序:數(shù)據(jù)的高字節(jié)存放在低地址,低字節(jié)存放在高地址
小端序:數(shù)據(jù)的高字節(jié)存放在高地址,低字節(jié)存放在低地址
例子:數(shù)據(jù)0x12345678在大、小端兩種存儲模式下數(shù)據(jù)的存儲情況,如下表
內(nèi)存地址 | 大端序 | 小端序 |
0x400 | 0x12 | 0x78 |
0x401 | 0x34 | 0x56 |
0x402 | 0x56 | 0x34 |
0x403 | 0x78 | 0x12 |