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