您的位置:首页 > 其它

大端、小端存储以及典型例题分析

2017-07-24 10:23 316 查看
小端:把数据的低字节序的内容存放在低地址处,把数据的高字节序的内容存放在高地址处。

大端:把数据的低字节序的内容存放在高字节处,把数据的高字节序的内容存放在低地址处。

举个例子:

int  a=1;

这是在我的机器下的存储方式,是小端存储的。



int a=0x11223344;



用一个函数来检查机器是大端存储还是小端存储

1.将一个整形强制类型转换为字符类型

int check_sys()
{
int num = 1;
char *pc = (char*)#
if (*pc == 1)
{
return 1;//小端
}
else
{
return 0;//大端
}
}2.借助联合来检查机器是大端还是小端
int check_sys()
{
union Un
{
int i;
char c;
}un;
un.i = 1;
return un.c;
}



典例:在X86下,有以下程序

void main()
{
union
{
short k;
char i[2];
}*s,a;
s = &a;
s->i[0] = 0x39;
s->i[1] = 0x38;

printf("%x\n", a.k);
system("pause:");
}


输出结果是什么呢?



打印出来就是k1,k0,即3839.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: