我找到了 2 个关于这个条形码的文档。他们都没有很好地描述如何计算校验和。
他们都只是给出了一个公式,并没有说明计算中要包含哪些字符。
此外,这些文档不提供开始/停止/填充或休息特殊符号的整数值。因此,如果它们包含在计算中,我什至不知道它们的值。
有谁知道如何计算校验和?
我在那里找到了这些信息:http ://www.gomaro.ch/ftproot/Code%2016k.pdf 和那里(更完整):http ://www.expresscorp.com/content/express/pdf/IndustrySpecifications/USS- 16K.pdf
所以这段代码有 2 个校验和,它们是通过加权每个字符(包括起始字符)的值的总和来计算的。
第一个复选符号从 2 开始加权。
第二个从 1 开始加权。
接下来,取总和的模 107。
因此,如果您有字符值 22、10、15、20,则两个校验和将是:
(2*22 + 3*10 + 4*15 + 5*20) % 107
(1*22 + 2*10 + 3*15 + 4*20) % 107
如果您有更多字符,请继续...一般公式将用于 n 个字符:
C1 = modulo 107(sum((i+1)*Char(i))
summed from i=1 to number of symbol character -2
C2 = modulo 107(sum(i*Char(i))
summed from i=1 to number of symbol character -1 (so this includes C1)
这是 16k 代码结构的图像: