字节序: 指多字节在存储器中的存放顺序。
大端存储:
数据的低位放在内存的高位置处,高位放在内存的低位置处。
小端存储:
数据的低位放在内存的低地址处,数据的高位放在内存的高位。
下面是4个字节(int)类型按16进制在大小端存放的区别。2个16进制数占一个字节,字节的内部是不会改变顺序的,大小端的区别只存在字节之间的顺序不同。

下面的方法都用数据0X00000001来判断

#include<iostream>
using namespace std;
void way1() {
int a = 1;
int b = *((char*)&a);
if (b == 1)
{
cout << "小端" << endl;
}
else
{
cout << "大端" << endl;
}
}
int main()
{
way1();
return 0;
}对b进行一系列的操作,实际上是取到了a的低地址处,。
如果是大端,拿到的是0;
如果是小端,拿到的是1;

#include<stdio.h>
union fun
{
char a;
int b;
}s;
int main()
{
s.b = 1;
if (s.a == 1)
printf("小端");
else
printf("大端");
return 0;
}
联合体的特点是共用一块内存,s联合体总共开了4个字节大小的空间,如果存入数据b,就会把空间占满,s.a就可以拿到b在内存中存储的前一个字节。
我们常用的x86是小端存储结构。