上嵌入式课程ARM章节时老师提到了大端小端的问题,并说现在多数采用小端,一开始没有理解:
后来查阅资料知道:对于一个由2个字节组成的16位整数(寄存器中),在内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。如下图:
在图中,顶部表明内存地址增长方向从右到左,在底部标明内存地址增长的方向为从左到右。并且还标明最高有效位(most significant bit,MSB)
是这个16位值最左边一位,最低有效位(least significant bit, LSB)是这个16位值最右边一位。
术语“小端”和“大端”表示多个字节值的哪一端(小端或大端)存储在该值的起始地址。