ISBN 10位校验码的计算方法

1 篇文章 0 订阅

国际标准书号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



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值