2013-09-23 117 views
0

我发现了2条有关此条形码的文档。 他们都没有描述如何计算校验和。代码16K条码 - 校验和计算

他们都只是给出一个公式,并没有说在计算中包含哪些字符。

此外,这些文档没有提供开始/停止/填充或休息特殊符号的整数值。所以如果他们被包括在计算中我甚至不知道他们的价值。

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

回答

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 :

+0

问题文档没有真正的例子,哪些字符包含,哪些要排除。 – Alexander

+0

以及我认为你需要包括所有这些...“,它们是通过加权每个 字符的值的总和来计算的,包括起始字符” – Marc

+1

http://www.expresscorp.com/content/express/pdf“ /IndustrySpecifications/USS-16K.pdf该文件似乎更完整。你也可以看看它...你可以直接去'check characters'部分 – Marc