大小端是一种电脑储存模式,分别是大段模式和小段模式。
大端模式(Big-endian),是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,储存模式类似把数据当作字符串顺序处理。
小段模式(Little-endian),是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,存储模式将地址的高低和数据位权有效地结合起来。
我们使用画图来阐述:
我们拿0x11223344来举例:
总结起来就是:
大端存储:低位存放在高地址(高位存放在低地址)
小端存储:低位存放在低地址(高位存放在高地址)
那我们怎么判断呢?
//设计一个小程序来判断当前机器的字节序
int check_sys()
{
int n = 1;
if (*(char*)&n == 1)
return 1;//小端
else
return 0;//大端
}
int main()
{
int ret = check_sys();
if (ret == 1)
printf("小端\n");
else
printf("大端\n");
return 0;
}
判断结果:
显而易见,我的电脑是小端模式。
非常欢迎大家与我进行交流,文中如有不正确的地方,请给予指正,谢谢。