校验位计算 Modulo 43

校验数位计算说明



InfoActiveBarcode 可自动计算大多数代码的校验码。
本文件仅供参考。

Modulo 43

根据模数计算校验和 43:
例如,代码 39就使用了模数 43 的校验码。

首先,为代码的所有字符分配参考编号。 这些参考编号将加到总数中。 这个总数除以 43。 该分部的其余部分与校验和相对应,然后用与参考编号相对应的字符来代替。

计算示例

数字: 1 5 9 A Z
参考编号: 1 +5 +9 +10 +35
参考编号总和: 60
计算校验和: 60 / 43 = 1 剩余 17
校验码 "H" (参考编号 17)

参考编号:
00 0
01 1
02 2
03 3
04 4
05 5
06 6
07 7
08 8
09 9
10 A
11 B
12 C
13 D
14 E
15 F
16 G
17 H
18 I
19 J
20 K
21 L
22 M
23 N
24 O
25 P
26 Q
27 R
28 S
29 T
30 U
31 V
32 W
33 X
34 Y
35 Z
36 -
37 .
38 Space
39 $
40 /
41 +
42 %


根据模 43 计算校验和的代码示例

Excel VBA 代码,用于根据模 43 计算校验和,例如 HIBC 代码:
' calc modulo 43
‘ returns the input string plus the check character
' demo for www.activebarcode.com
Public Function MOD43CheckChar(sValue As String) As String
    Const charSet As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"
    Dim i As Integer
    Dim T As Long
    For i = 1 To Len(Trim(UCase(sValue)))
        T = InStr(charSet, Mid(sValue, i, 1)) - 1 + T
    Next i
    MOD43CheckChar = sValue & Mid$(charSet, (T Mod 43 + 1), 1)
End Function