小端模式:数据的低位字节,存放在低地址中;数据的高位字节,存放在高地址中。计算机读取数据的方向,是从高地址开始读取的;
大端模式:数据的低位字节,存放在高地址中;数据的高位字节,存放在低地址中。计算机读取数据的方向,是从低地址开始读取的;
如何验证自己的计算机是大端存储还是小端存储呢?
由上图我们可以先取出1的地址然后强制转换成char*类型判断是否等于就可以
方法一
#include<stdio.h>
int main()
{
int a = 1;
if (*(char*)&a)
{
printf("小端\n");
}
else {
printf("大端\n");
}
return 0;
}
方法二
利用联合体的存储特点巧妙取出第一个字节
int check_sys()
{
union
{
char c;
int a;
}u;
u.i = 1;
return u.c;
}
int main()
{
int ret = check_sys();
if(ret==1)
printf("小端\n");
else
printf("大端\n");
return 0;
}