要了解什么是大端字节序与小端字节序我们首先要知道任何一个数据在计算机系统中被储存的时候都会有一个地址用以储存这个值一个地址可以储存两个16进制数的数据那么对于一个16进制的数据如0x11223344它在内存中就有好几种存储方式如图

关于什么是大端字节序储存和小端字节序储存_大端字节序

理论上来说只要最后我们能将这个值给传递出来那么哪一种储存方式都是可以的。但最方便的也就只有图中的1,2两种方式而已,图上的第一种就是大端字节序储存,如图中所示对于一个数据的低位字节的数据存放到高地址处,把数据的高位字节的数据集储存到低地址处这就是大端字节序储存。与之相反将一个数据地位字节的数据放到低地址处,将一个数据的高位字节的数据储存到高地址处这就是小端字节序储存。那么什么是一个数据的低字节的数据呢?如123其中1就是123这个数据的高位字节数据那么拿到图中的0x11223344那么11就是高字节数据如同123里的1一样。那么我们如何写一个代码确定自己的电脑上是大端还是小端储存呢?方法很简单我们只用拿出这个数据的第一个地址处储存的是什么然后进行判断即可

#include<stdio.h>
int main()
{
int a = 0x11223344;
char* p=(char*)&a;//因为我们在解引用时只用关心第一个地址处存放的数据所以指针类型为char*而我们要的地址类型也是char*所以要将&a的地址强制类型转换
if(*P==11)
printf("大端\n");
else
printf("小端\n");
return 0;
}

我的运行结果如图

关于什么是大端字节序储存和小端字节序储存_大端字节序_02

那么我的电脑就是以小端的形式储存数据的