我找到了2个关于这个条形码的文档。 他们都没有描述如何计算校验和。
他们俩只是给出了一个公式,并没有说出要包含在计算中的字符。
此外,这些文档不会为start / stop / pad或rest特殊符号提供整数值。因此,如果将它们包含在计算中,我甚至不知道它们的值。
有谁知道如何计算校验和?
答案 0 :(得分:1)
我在那里找到了这些信息: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代码结构的图像: