一. 简介
我们知道,一般内存的最小地址单位为字节。如下图,一个int型的变量是4个字节,我们用2个十六进制数表示1个字节,int型变量需要用到8个十六进制数表示。
大端(存储)模式:数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中。
小端(存储)模式:数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。
二. 用一个程序判断大小端
思路: 我们定义一个
int
型变量a
,并且赋值为1
。然后取a
的地址强制转换成char*
类型,让一个char*
类型的指针变量pa
指向它,这样pa
解引用访问的数据就是a
第一个字节的数据,也就是低地址的数据,如图的紫色区域的数据。
#include <stdio.h>
int main()
{
int a = 1;
char* pa = (char*)&a;
if (*pa == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}