字节序

大小端:

小端:高地址存放高位数,低地址存放低位数,windows,linux,X86CPU

大端:高地址存放低位数,低地址存放高位数,UNIX

例如:

   在WIN、Linux下在内存中的布局如下 :
   [01][02][03][04] 注意左边是高地址,而右边是低地址 
   在UNIX下则是 
   [04][03][02][01] 注意左边是高地址,而右边是低地址 

 

主机字节:序跟cpu和os有关。是指主机处理数据时采用的字节序,虽然主机字节序和网络字节序是相对的概念,但是我们说主机字节序的时候,并不默认是之大端或者小端,而是结合机型来确定大小端的。 

网络字节序:其实是指网络传输的字节序,这个字节序可能是大端序或者小端序,这取决于软件开始时通讯双方的协议规定。 
   平时,如果有人说的网络字节序,那么大家就认为是大端序。

IP地址的字节序: 
  记住一条,IP地址的整数值,自IP地址生成的时刻起,就一定是网络字节序的。

字节序转换函数: 
   OS一般都提供htons、htonl、ntohs、ntohl这四个字节序操作函数,这些函数的目的虽然相同,而且操作后内存布局也相同,但是从算术运算的角度来看这些函数的特性是与机型相关的:在WIN下这四个函数会改变所操作的数的数值,但是在UNIX下就不回改变数据的算术值,UNIX下这些函数是空操作。这个差别也可能是为什么UNIX服务器上程序的性能会高于WIN的一个小原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值