1、了解:
小端模式是:高地址存放高字节, 低地址存放低字节.(即正常的:高存高、低存低);
大端模式是:高地址存放低字节, 低地址存放高字节。
3、想要知道当前处理器是大端还是小端存储的?
【1】假如我要存放数据0x12_34_56_78
如果小端来存放则如下:
| data |<-- address
| 0x78 |<-- 0x00002001
| 0x56 |<-- 0x00002002
| 0x34 |<-- 0x00002003
| 0x78 |<-- 0x00002001
| 0x56 |<-- 0x00002002
| 0x12 |<-- 0x00002004
如果大端来存放则如下:
| data |<-- address
| 0x12 |<-- 0x00002001
| 0x34 |<-- 0x00002002
| 0x56 |<-- 0x00002003
| 0x12 |<-- 0x00002001
| 0x34 |<-- 0x00002002
| 0x78 |<-- 0x00002004
【2】 当我int a = 0x12_34_56_78;
因此char *p = (char *)&a;即指向0x00002001位置处,
对于小端,*p取0x00002001上面的值即0x78。
对于大端,*p取0x00002001上面的值即0x12。
【3】
#include<stdio.h>
intmain()
{
intn = 0x12345678;
char*p = (char *)&n;
printf("%x\n",*p);
return0;
}
本地电脑一般采用小端模式(也有大端模式额),而网络字节序使用大端模式