我正在实现 QR 码生成算法,如 thonky.com 中所述,我正在尝试理解其中一种情况:
如本页和本页所述,我可以推断,如果代码受 M 纠错级别保护,并且选择的掩码为 No. 0,则格式字符串(非 XOR(的前 5 位是 '00000',因此整个 15 位字符串为零。
下一步是删除所有前导零,这些零又是所有前导零。 这意味着生成器多项式字符串(10100110111(没有任何XOR,从而给我们一个15个零的最终字符串,这意味着最终的(XORed(字符串将只是掩码字符串(101010000010010(。我正在寻求确认我的逻辑是正确的。
提前非常感谢大家的帮助。
你的逻辑是正确的。
实际过程可以描述为将 10 个零位附加到 5 位数据并将 15 位视为多项式删除所有前导零
的 15 个单位系数,然后将该多项式除以 11 位生成器多项式,得到 10 位余数多项式,然后从 5 个数据位 + 10 个零位多项式中减去。由于这是二进制数学,因此add
和subtract
都是xor
运算,并且由于附加的 10 位是零位,因此该过程只需将 10 个剩余位附加到 5 个数据位。
如上所述,由于只有 32 种可能的格式字符串,因此您可以只执行表查找,而不是实际实现 BCH 编码函数。
https://www.thonky.com/qr-code-tutorial/format-version-tables