ISBN 10位校验码的计算方法

国际标准书号International Standard Book Number,简称ISBN),常用的有10位、13位,从2007年1月1日起国际标准正式修订为13位。


10位计算方法如下:

1、假设某国际标准书号号码前9位是:7-309-04547;

2、计算加权和SS={\color{Red}7}\times10+{\color{Red}3}\times9+{\color{Red}0}\times8+{\color{Red}9}\times7+{\color{Red}0}\times6+{\color{Red}4}\times5+{\color{Red}5}\times4+{\color{Red}4}\times3+{\color{Red}7}\times2=226

3、计算\frac{S}{11}的余数MM\equiv6\equiv226\pmod{11}

4、计算11-M 的差NN=11-6=5

  • 如果N=10,校验码是字母“X”;
  • 如果N = 11,校验码是数字“0”;
  • 如果N为其他数字,校验码是数字N

所以,本书的校验码是5,故该国际标准书号为:7-309-04547-5;

VB方法如下:

isbn = InputBox("Please input ISBN", "ISBN")
 k = ""
 For i = 1 To Len(isbn)
     s = Mid(isbn, i, 1)
     If s <> "-" Then
         k = k & s
     End If
 Next
 If Len(k) <> 9 Then
     MsgBox "Wrong Input"
 End If
 a = 0
 For i = 1 To 9
     a = a + (11 - i) *Mid(k, i, 1)
 Next
 a = a Mod 11
 a = 11 - a
 If a = 10 Then
     isbn = isbn & "-X"
 Else
     If a = 11 Then
         isbn = isbn & "-0"
     Else
         isbn = isbn & "-" & a
     End If
 End If
 MsgBox isbn



13位或者其他解释见:http://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85%E6%A0%87%E5%87%86%E4%B9%A6%E5%8F%B7



你可能感兴趣的:(VB,ISBN)