代码16K条码 - 校验和计算
问题描述:
我发现了2条有关此条形码的文档。 他们都没有描述如何计算校验和。代码16K条码 - 校验和计算
他们都只是给出一个公式,并没有说在计算中包含哪些字符。
此外,这些文档没有提供开始/停止/填充或休息特殊符号的整数值。所以如果他们被包括在计算中我甚至不知道他们的价值。
有谁知道如何计算校验和?
答
我发现这个信息有: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的代码结构的图像:
问题文档没有真正的例子,哪些字符包含,哪些要排除。 – Alexander
以及我认为你需要包括所有这些...“,它们是通过加权每个 字符的值的总和来计算的,包括起始字符” – Marc
http://www.expresscorp.com/content/express/pdf“ /IndustrySpecifications/USS-16K.pdf该文件似乎更完整。你也可以看看它...你可以直接去'check characters'部分 – Marc