测试本机是打断还是小端;
本人愚钝,领悟至此,颇有感慨,与己共勉,陋文浅显,见者海涵。
以前总听说大端小端,一直没太理解,其实只要动动手一切就差不多了!
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中;
#include <stdio.h>
union Duan{
char a[sizeof(int)];
int num;
};
int main()
{
union Duan d;
d.num=134480385;
//这个数也有它的意义,其二进制数为:00001000 000000100 00000010 00000001 ,四个字节依次为:8-4-2-1;
//地址 0012ff47 0012ff46 0012ff45 0012ff44
printf("%p\n",&d.a[0]);//0012ff44
printf("%d\n",d.a[0]);
printf("%p\n",&d.a[1]); //0012ff45
printf("%d\n",d.a[1]);
if(sizeof(int)==4)
{
if(d.a[0]==1 && d.a[3]==8)
printf("此计算机为小端.\n");
if(d.a[0]==8 && d.a[3]==1)
printf("此计算机为大端。\n");
}
return 0;
}
本人愚钝,领悟至此,颇有感慨,与己共勉,陋文浅显,见者海涵。