大头小头 字节序

 

主要在于哪里是低地址,哪里是低字节

字节序有两种:
小端字节序:低字节在低地址中,高字节在高地址中。这种字节序又称为主机字节序,intel的cpu使用的就是这种字节序。

 

 

大端字节序:低字节在高地址中,高字节在低地址中。这种字节序又称为网络字节序,socket传输时就需要使用这种字节序。

 

假设我们的32位整数0x12345678是从起始位置为0x00的地址开始存放,则:

地址是低地址-------->高地址;       字节是:高字节-------->低字节

  1. //0x00  0x01    0x02    0x03    
  2. //78    56      34      12  (小端)  
  3. //12    34      56      78  (大端)  

因此,我们可以这样判断:

int main(void)  
{  
    int i = 0x12345678;  
    if(*((char*)&i) == 0x12)  
        printf("大端");  
    else  
        printf("小端");  
    return 0;  
} 

对于0x12345678,

Little endian:低<------->高字节:存储数据0x12 0x34 0x56 0x78

Big endian:   高字节<------->低:存储数据0x78 0x56 0x34 0x12
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值