algorithm - 二维码生成算法实现案例分析
问题描述
我正在实施thonky.com上解释的 QR 码生成算法,我试图了解其中一种情况:
如本页和本页所述,我可以推断,如果代码受 M 纠错级别保护,并且选择的掩码为 0 号,则格式字符串的前 5 位(非异或)为 '00000',因此,整个 15 位字符串为零。
下一步是删除所有前导零,这也是所有前导零。这意味着没有什么可以对生成多项式字符串(10100110111)进行异或,因此给了我们一个由 15 个零组成的最终字符串,这意味着最终(异或)字符串将只是掩码字符串(101010000010010)。我正在寻求确认我的逻辑是正确的。
非常感谢大家的帮助。
解决方案
你的逻辑是正确的。
删除所有前导零
实际过程可以描述为将 10 个零位附加到 5 位数据,并将 15 位视为多项式的 15 个单位系数,然后将该多项式除以 11 位生成多项式,得到 10 位余数多项式,即然后从 5 个数据位 + 10 个零位多项式中减去。由于这是二进制数学,add
并且subtract
都是xor
运算,并且由于附加的 10 个位是零位,因此该过程只需将 10 个余数位附加到 5 个数据位。
如上所述,与其实际实现 BCH 编码函数,因为只有 32 种可能的格式字符串,您只需进行表查找即可。
https://www.thonky.com/qr-code-tutorial/format-version-tables
推荐阅读
- sql-server - SQL Server 动态 Pivot 为每个类别返回一行
- sed - SED - 使用 $ 在行首而不是行尾插入字符串
- python - 有没有办法在 Python matplotlib 中以交互方式一一标记图像?
- ruby - 在 Ruby 中,在 class << self 中定义的方法中,为什么父类上定义的常量不能在没有 self 的情况下访问?
- json - IndexError:循环嵌套字典时列表索引超出范围
- javascript - 当多个元素之一退出视口时保持按钮隐藏
- python - 在 Python 中运行 Screen 后台程序的最佳方法是什么?
- javascript - 如何在用作其他网站 iframe 的小部件中使用 Google Analytics
- plaid - 无效的环境:“格子呢”使用开发模式时
- angular - 承载令牌是否隐藏在对 REST 端点的 https 调用中