大端序(big endian):高序字节存储在低地址(指CPU对操作数的存放方式是将数据的高位存放在内存中的低地址,而数据的低位存放在内存中的高地址。)
- 将高字节存储在起始地址,成为“Big Endian”字节序,由Motorola等所采用
- ARM大小端可选
小端序(little endian):低序字节存储在低地址(指CPU对操作数的存放方式是将数据的低位存放在内存中的高地址,而数据的低位存放在内存中的搞地址。)
- 将低字节存储在起始地址,成为“Little Endian”字节序,Intel、AMD等采用的是这种方式。
大多数ARM处理器都是采用的小端模式,网络中传输的数据必须按网络字节序,即大端序。
在大部分PC机上,当应用进程将整数送入socket前,需要转化成网络字节序;当应用进程从socket取出整数后,要转化成小端字节序。
字节序转换函数
把给定系统所采用的的字节序称为主机字节序。为了避免不同类别主机之间在数据交换时由于对于字节序的不同而导致的差错,引入了网络字节序。
主机字节序(Host Byte Order)到网络字节序(Network Byte Order):
- uint32_t htonl(uint32_t hostlong);
- uint16_t htons(uint16_t hostshort);
网络字节序到主机字节序:
- uint32_t ntohl(uint32_t netlong);
- uint16_t ntohs(uint16_t netshort);
&n

本文介绍了Linux系统中大小端序的概念,包括大端序(big endian)和小端序(little endian)。大部分ARM处理器使用小端模式,而网络传输通常采用大端序。在数据交换时,需要进行字节序转换,例如通过htonl, htons, ntohl, ntohs等函数将主机字节序转换为网络字节序或反之。"
137864506,10593379,ElementUI使用EasyExcel实现数据导出,"['elementui', '前端开发', '数据导出']
最低0.47元/天 解锁文章
6728

被折叠的 条评论
为什么被折叠?



