内存中数据是以字节为单位进行存储的,每个地址单元对应着一个字节(byte),一个字节为8位(bite).然而很多数据不仅仅是8位,有些机器在起始地址存放低位字节(低位先存),即小端模式;有的机器在起始地址存放高位字节(高位先存),即大端模式。基于Intel的CPU,采用的是低位先存。而KEIL C51则为大端模式。大端小端对应着数据在存储器中的存放顺序。
举例说明内存地址为0x5000的地方开始存放1234,little endian会先存放34.再存12,而大端模式反之。
下面给出程序测试。
#include<stdio.h>
#include<string.h>
int main(void)
{
int n=1;
char*p=(char*)&n;
if(*p)
printf("little endian \n");
else
printf("big endian\n");
}
}