主機字節序:多于一個字節的數據類型(多字節數據類型)在內存中的存放順序叫主機字節序。
最常見的字節序有兩種:小端字節序和大端字節序。
小端字節序:Little Endian,簡稱LE,將數據的最低字節放在內存的起始位置。也就是說,內存地址較低的字節位存放數據的低位字節,內存地址較高的字節位存放數據的高位字節。可以簡記為:高高低低。
大端字節序:Big Endian,簡稱BE,將數據的高字節放在內存的起始位置。也就是說,內存中地址較低的位存放數據的高位字節,內存地址較高的字節位存放數據的低位字節??梢院営洖椋焊叩偷透?。
術語“小端”和“大端”表示多字節值的哪一端(小端或大端)存儲在該值的起始地址。小端存儲在起始地址就是小端字節序;大端存儲在起始地址就是大端字節序。
網絡字節序標準規定為大端字節序。
不同平臺上會對主機字節序進行轉化,成為網絡字節序后再進行傳送,到主機后再轉化為主機字節序。
#include <netinet/in.h>uint16_t htons(uint16_t host16bitvalue);uint32_t htonl(uint32_t host32bitvalue);均返回:網絡字節序值uint16_t ntohs(uint16_t net16bitvalue);uint32_t ntohl(uint32_t net32bitvalue);均返回:主機字節序值
新聞熱點
疑難解答