多谢。
我照着你的代码自己翻译了一下,但是计算结果还是不对,
例如:D0112510900083370778M20170602888866 结果应该是H,而我算出来的却是 5,不知道错在哪里。[/quote]
MOD37-2[/quote]
GOLANG 代码:
src = strings.ToUpper(src)
src = strings.Replace(src, "-", "", -1)
srcBytes := []byte(src)
var p int
for _, b := range srcBytes {
if b > 64 {
b = b - 55
} else {
b = b - 48
}
p = ((p + int(b)) * 2) % 37
}
p = (37 - p + 1) % 37
return p