关于CRNG块Flags字段字节序与位映射关系的确认
关于IFF/LBM格式CRNG块Flags字段的字节序问题
首先明确:IFF(包括LBM)格式采用大端字节序(高字节在前存储),文档里描述的Flags字段的bit0、bit1,是基于大端16位数值的位编号——bit0是整个16位值的最低有效位(LSB),对应存储时第二个字节的第0位;bit1是整个16位值的第1位,对应存储时第二个字节的第1位。
如果把这个16位字段的字节序列按小端序读取(也就是不做字节转换,直接以小端规则解析大端存储的字节),那么:
- 原文档提及的bit0会变成小端读取后数值的bit8
- 原文档提及的bit1会变成小端读取后数值的bit9
原因很直观:大端存储的字节顺序是「高8位字节 + 低8位字节」,按小端解析时会颠倒字节顺序,把原来的低8位字节当作高8位处理。原来低8位字节里的bit0、bit1,自然就对应成了新数值的第8、9位。
内容的提问来源于stack exchange,提问作者Melllvar
相关产品推荐
相关产品推荐

