一、计算机字节序
小端字节序存储:低位存放着低地址,高位存放着高地址
大端字节序存储:低位存放着高地址,高位存放着低地址
二、如何用C语言来判断机器的大端与小端
定义一个整形变量a,并初始化为1
由于整型是4个字节
我们利用char取出第一个字节
判断该元素是0 还是1
如果为1,则为小端
否则为大端
三、两种方法
(1)共用体union
代码块:
int check_sys()
{
union UN
{
int a;
char b;
}un;
un.a = 1;
if(un.b == 1)
return 1;//小端
else
return 0;//大端
}
分析:
由于共用体的特征是
这种几个不同的变量共同占用一段内存的结构
用共用体可以轻松达到这个效果
(2)用char* 取地址
代码块:
int check_sys()
{
int a = 1;
char* p = (char* )&a;
if(*p == 1)
return 1;//小端
else
return 0;//大端
}
分析:
a是四个字节