前言
近期使用联合体发现在不同芯片上,存在数据不一致的问题,查阅相关资料发现不同架构的芯片存在大端序小端序的问题,下面这篇博客将对这个问题做一个记录,
大端序小端序简单的说就是字符在计算机系统中的存储顺序,如果数据都是单字节的存储形态,那么就和存储顺序无关,对于多字节系统,比如int,double等就需要考虑数据在计算机中的存储方式了.
字节是硬件层面的东西,对于软件系统来说是透明的.只与选用的处理器的架构有关.
举个例子来书对于数值0x1234
使用两个字节来存储.
- 大端字节序(big endian):高位字节在前地位字节在后,低位字节在前,也就是说
0x12
在前0x34
在后. - 小端字节序(little endian):低位字节在前面,高位字节在后面.