1)计算机内部存数据时有两种方式,分别是大端存储和小端存储。
2)二者的区别是,大端存储是数据的低位存在高地址处,高位存在低地址处。而小端存储是数据的低位就放在低地址处,高位放在高地址处。
3)为什么选择联合体?因为联合体是多个变量共用一块内存空间,与我们的设计思路吻合。
代码如下:
如果输出1即是小端,输出0即是大端。
#include <stdio.h>
union judge
{
int n;
char ch;
};
int main()
{
union judge u;
u.n = 1;
printf("%d",u.ch);
return 0;
}
代码解析:整型1在两种存储模式下具体存放方式(数据以16进制显示)。
假设左边低地址,右边高地址
大端存储1:00 00 00 01
小端存储1:01 00 00 00
用char 类型来读取时只读取前两位(即一个字节)。
所以就可以根据输出值来判断计算机的存储模式。