Linux 系统判断大小端序

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大端序(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);
  •  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值