1.小端法(Little-Endian)就是低位字節排放在內存的低地址端即該值的起始地址,高位字節排放在內存的高地址端。
2.大端法(Big-Endian)就是高位字節排放在內存的低地址端即該值的起始地址,低位字節排放在內存的高地址端。網絡
舉個簡單的例子,對於×××0x12345678。它在大端法和小端法的系統內中,分別如圖1所示的方式存放。ide
網絡字節序spa
咱們知道網絡上的數據流是字節流,對於一個多字節數值,在進行網絡傳輸的時候,先傳遞哪一個字節?也就是說,當接收端收到第一個字節的時候,它是將這個字節做爲高位仍是低位來處理呢?
網絡字節序定義:收到的第一個字節被看成高位看待,這就要求發送端發送的第一個字節應當是高位。而在發送端發送數據時,發送的第一個字節是該數字在內存中起始地址對應的字節。可見多字節數值在發送前,在內存中數值應該以大端法存放。
網絡字節序說是大端字節序。
好比咱們通過網絡發送0x12345678這個×××,在80X86平臺中,它是以小端法存放的,在發送前須要使用系統提供的htonl將其轉換成大端法存放,如圖2所示。orm