fix: 格式信息 BCH 编码运算符优先级 — | 低于 ^ 导致 XOR 未覆盖数据位
Bug: ((data << 10) | (val & 0x3FF)) ^ 0x5412 被解析为 (data << 10) | ((val & 0x3FF) ^ 0x5412) 导致格式信息的 XOR mask 未覆盖前 5 个数据位,扫码器读到错误的 EC 级别和掩码编号
This commit is contained in:
@@ -153,8 +153,8 @@ pub fn encode_format_info(ec_bits: u8, mask: u8) -> u16 {
|
||||
}
|
||||
}
|
||||
|
||||
// XOR 掩码
|
||||
((data as u16) << 10) | (val & 0x3FF) ^ 0x5412
|
||||
// XOR 掩码 — 注意 ^ 优先级高于 |,必须加括号
|
||||
(((data as u16) << 10) | (val & 0x3FF)) ^ 0x5412
|
||||
}
|
||||
|
||||
/// 将格式信息写入矩阵(两处镜像放置)
|
||||
|
||||
Reference in New Issue
Block a user