谭兄

导航

 

 

字节序是一个处理器架构特性, 用于指示像整数这样大数字类型在计算机内部的字节顺序.

可以分为大端字节序和小端字节序.

大端字节序 : 高位字节在前, 低位字节在后.  这是人类的习惯.

小端字节序 : 低位字节在前, 高位字节在后. 这是计算机的处理方式.

比如有16进制数 0x0011

大端字节序存储为 :  0x00 0x11

小端字节序存储为 :  0x11 0x00

 

 

一般Linux采用小端字节序, 在同一机器进程之间通信一般不用考虑字节序, 但是在网络之间通信就需要进行转换了. TCP/IP协议规定了字节序为大端字节序, 因此对于TCP/IP的应用程序, 可以使用以下几个函数进程转换 :

 

#include<arpa/inet.h>

uint32_t htonl(uint32_t  hostint32);

uint32_t htons(uint16_t  hostint16);

uint32_t ntohl(uint32_t  hostint32);

uint32_t ntohs(uint16_t  hostint16);

 

posted on 2017-05-10 12:06  谭兄  阅读(156)  评论(0编辑  收藏  举报