1、什么是MSB/LSB(big endian/little endian)
LSB(Least Significant Bit),意为最低有效位。
MSB(Most Significant Bit),意为最高有效位。若MSB=1,则表示数据为负值,若MSB=0,则表示数据为正。
两大CPU派系指定的是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。
小端字节序(little endian):低字节存于内存低地址,高字节存于内存高地址,对应LSB。
大端字节序(big endian):高字节存于内存低地址,低字节存于内存高地址,对应MSB。
例如一个数据0x0102,01是高位,02是低位。
数据的位次是由左到右逐渐降低的
如果一个数据靠左(高位)的位次分布在内存地址序号较大的位置上,那你的机器(CPU)就是little endian,反之就是big endian。
网上的看图说明例子:
2、python解析时二进制文件时注意大小端问题
可以用struct包来解析二进制文件:
struct.unpack(