fix: 格式信息 BCH 编码运算符优先级 — | 低于 ^ 导致 XOR 未覆盖数据位

Bug: ((data << 10) | (val & 0x3FF)) ^ 0x5412 被解析为 (data << 10) | ((val & 0x3FF) ^ 0x5412)
导致格式信息的 XOR mask 未覆盖前 5 个数据位,扫码器读到错误的 EC 级别和掩码编号
This commit is contained in:
2026-06-17 09:26:09 +08:00
parent 11d8cffa57
commit 3f1b9901b5
2 changed files with 180 additions and 2 deletions
+2 -2
View File
@@ -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
}
/// 将格式信息写入矩阵(两处镜像放置)