このバーコードに関するドキュメントを 2 つ見つけました。それらのどれも、チェックサムを計算する方法をうまく説明していません。
どちらも式を与えるだけで、計算にどの文字を含めるかは言いませんでした。
また、これらのドキュメントでは、開始/停止/パッドまたは残りの特殊記号の整数値は示されていません。したがって、それらが計算に含まれている場合、それらの値さえわかりません。
チェックサムを計算する方法を知っている人はいますか?
私はこの情報を見つけました:http://www.gomaro.ch/ftproot/Code%2016k.pdf そしてそこに(より完全な):http://www.expresscorp.com/content/express/pdf/IndustrySpecifications/USS- 16K.pdf
したがって、このコードには、開始文字を含む各文字の値の合計を重み付けして計算される 2 つのチェックサムがあります。
最初のチェック シンボルは、重み付けを 2 から開始します。
2 番目は 1 から重み付けを開始します。
次に、合計のモジュロ 107 を取ります。
したがって、文字値が 22、10、15、20 の場合、2 つのチェックサムは次のようになります。
(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 コードの構造のイメージを次に示します。