字节序

今晚网络编程的时候又碰到了字节序的问题,这次可能要在嵌入式上开发,所以得小心点。

对于0X12345678来存储

大端模式:比较符合直观(地址从左到右增加,数据高位到地位写过去就行)

地址 : 00 01 02 03

数据 : 12 34 56 78

小段模式:比较符合逻辑(低地址存低位,高字节存高位)

地址 : 00 01 02 03

数据:78 56 34 12

拿个IP地址传输来说:

IP : 106.187.89.255

0X : 6a : bb : 59 :e1

在小端模式CPU(X86的都是)下:

地址:00 01 02 03

数据:e1:59:bb:6a

转化成网络字节序,填充到IP头里面:

地址:00 01 02 03

数据:6a:bb:59:e1

传输过程:    0~7 bit, 8 ~ 15 bit,16 ~ 23 bit, 24 ~ 31 bit

传输中数据:   6a      ,    bb        ,       59       ,       e1

接收方

接收过程也是先来先服务(数据链路层也存在传输误码率的控制,这里不考虑丢包,重传之类的了)

那么接收方(假设也是小端)得到数据要是不通过字节序转化(此时还是网络字节序):

地址:00 01 02 03

数据:6a:bb:59:e1

这个时候IP就是就是e1.59.bb.6a,点分十进制就是225.89.187.106。
所以可以用 inet_ntoa()进行字节序和字符串转换。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值