一、为什么有大端小端的问题?

计算机中数据都是按字节为单位的,超过一个字节的数据在数据存储的过程中会有一个顺序的问题。有两种储存模式:
大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。
小端模式:是指数据的低字节保存在内存的低地址中,而数据的高字节保存在内存的高地址中。
比如十六进制数int a=0x11223344;

存储器地址0x1000x1010x1020x103
大端模式0x110x220x330x44
小端模式0x440x330x220x11

二、什么是高位字节和什么是低位字节?

如下表所示每一个字节可以分8位 也是有顺序的 最高位就是MSB 最低位就是LSB

数据位Bit7(MSB)Bit6Bit5Bit4Bit3Bit2Bit1Bit0(LSB)
数据(0x11)00010001

三、数据传输中的大端小端问题

在通信协议中,必须明确指定使用哪种字节序(如网络字节序,通常采用大端模式),以确保发送方和接收方能够正确地解释数据。否则,如果发送方使用大端而接收方使用小端(或反之),那么在数据传输过程中就可能会出现混乱。

四、常见的处理器大小端架构

由此可见:CPU的大小端是有硬件架构决定的
常见的处理器大小端架构:

处理器端模式
IntelX86Little-Endian
Power-PCBig-Endian
IBMBig-Endian
ARM默认 Little-Endian
STM32Little-Endian

 五、C语言如何代码判断大小端


bool isLittleEndian(){
    unsigned short a = 0x1218;
 
    if( (*(char*)&a)  == 0x18){
        return true;
    }else{
        return false;
    }
}

参考文献

一文彻底弄懂大端与小端_kingforyang的博客-CSDN博客_大端小端