2013-09-23 116 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