1. 程式人生 > >小端位元組序和大端位元組序

小端位元組序和大端位元組序

轉自達內培訓資料

以32位整數:0x12345678為例,該資料位數從左至右依次降低

小端位元組序:資料的地位在低地址,高位在高地址。0x12345678的小端位元組序為:[0x78, 0x56, 0x34, 0x12],地址從左至右依次升高

大端位元組序:資料的高位在低地址,低位在高低值。0x12345678的大端位元組序為:[0x12, 0x34, 0x56, 0x78],地址從左至右依次降低

在UDP和TCP等網路應用中,為避免位元組徐帶來的麻煩,套解字介面庫規定凡是在網路中交換的多位元組整數(short、int、long、long long和它們的unsigned版本)一律採用網路位元組徐傳輸。所謂網路位元組徐,其實就是大端位元組序。也就是說發資料時,先從主機位元組序轉成網路位元組序,然後傳送;收資料時,先從網路位元組序轉成主機位元組序,然後使用。
– 小端機A,0x12345678,主機序[0x78,0x56,0x34,0x12]轉成網路序[0x12,0x34,0x56,0x78],傳送給B和C
– 大端機B,接收網路序[0x12,0x34,0x56,0x78],轉成主機序[0x12,0x34,0x56,0x78],0x12345678
– 小端機C,接收網路序[0x12,0x34,0x56,0x78],轉成主機序[0x78,0x56,0x34,0x12],0x12345678