一, 什么是大小端
大端,数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中:地址由小向大增加,数据从高位往低位放;这和我们的阅读习惯一致。
小端,数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,高地址部分权值高,低地址部分权值低。
以1在机器中存储为例
正整数1原反补三码相同,均为:
00000000000000000000000000000001
大端字节序为:00000000000000000000000000000001
小端字节序为:00000001000000000000000000000000
二,程序设计思路
通过字符类型的指针访问正整数1的空间,看能访问到的是内容是1还是0,是1则为小端机器,是0则为大端机器。
#include <stdio.h>
int main()
{
int number = 1;
char* pnum = &number;
if (*pnum)
{
printf("小端机器\n");
}
else
{
printf("大端机器\n");
}
return 0;
}