代码16K条形码 - 校验和计算

时间:2013-09-23 09:56:14

标签: barcode checksum

我找到了2个关于这个条形码的文档。 他们都没有描述如何计算校验和。

他们俩只是给出了一个公式,并没有说出要包含在计算中的字符。

此外,这些文档不会为start / stop / pad或rest特殊符号提供整数值。因此,如果将它们包含在计算中,我甚至不知道它们的值。

有谁知道如何计算校验和?

1 个答案:

答案 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代码结构的图像: Here is an image of the structure of a 16k code :