Discuss / Python / 大端小端

大端小端

Topic source

简单查了下大端和小端的定义, 以'0x 000e'为例:

1. 大端方式'>'显示为'0x00', '0x0e',通常用于操作系统中

2. 小端方式'<'显示为'0x0e', '0x00',通常用于通信协议

作业:

def bmp_info(bmp_data):
    try:
        bmp_30 = open(bmp_data, 'rb').read(30)
        bmp_unpack = struct.unpack('<ccIIIIIIHH', bmp_30)
        if bmp_unpack[0] == b'B' and bmp_unpack[1] in [b'M', b'A']:
            bmp_dict = {'width': bmp_unpack[6], 'height': bmp_unpack[7], 'color': bmp_unpack[9]}
            return bmp_dict
        else:
            print('%s is not a BMP file' % bmp_data)
    except:
        print('BMP file Not Found')

我在系统里用read()读他的文件的时候总是出错呀UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 54: invalid start byte ,为啥用二进制读桌面的bmp文件就可以


  • 1

Reply