1.小端模式:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中.
2.大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中.
3.大小端CPU字节序:32位宽的十六进制数0x12345678在小端模式的存放方式(假设从地址0x1000开始存放)为:
内存地址 |
0x1000 |
0x1001 |
0x1002 |
0x1003 |
存放内容 |
0x78 |
0x56 |
0x34 |
0x12 |
而在大端模式的存放方式为:
内存地址 |
0x1000 |
0x1001 |
0x1002 |
0x1003 |
存放内容 |
0x12 |
0x34 |
0x56 |
0x78 |
4、判断大小的的两种方法:1:共用体 2:指针类型转换
<1>共用体:
union M
{
int a;
char b;
} m;
int Judge_Order( )
{
m.a = 1;
return (m.b ==1);
}
注:联合体union的存放顺序是所有成员都从低地址开始存放;
<2>指针类型转换
int Judge_Order( )
{
int i=0x1234;
char *p=(char *)&i;
if(*p==0x12) return 1;
else return 0;
}
5、一般操作系统都是小端,而通信协议是大端。
属于小端的机器: x86 、 DEC
属于大端的机器:PowerPC、IBM、Sun
ARM既可以工作在大端模式,也可以工作在小端模式。