Mysql高13位ISBN转9位_10位ISBN和13位ISBN校验码的计算方法[转]

10位ISBN校验位的计算方法:(模数11 余数 0-10 差数 1-11 校验位:0-9, x(差数为10))

以ISBN 7-81090-021-?为例,其计算如下

1) 取ISBN前9位数字

7 8   1   0   9   0   0   2   1

2) 取各位数字所对应的加权值(10~2)

10 9   8   7   6   5   4   3   2

3) 将各位数字与其相应的加权值依次相乘

70 72 8   0   54 0   0   6   2

4) 将乘积相加,得出和数

70+72+8+0+54+0+0+6+2=212

5) 用和数除以模数11,得出余数

212÷11=19余3

6) 模数11减余数,所得差数即为校验码的值

11–3=8

7) 将所得校验码数值放在构成ISBN的基本数字的最右边

ISBN 7-81090-021-8

如果差数为10。校验码则以大写英文字母“X”表示。如果余数是“0”,则校验码为“0”。

余数、差数和校验位的关系

余数:    0   1   2   3   4   5   6   7   8   9 10

差数:   11 10   9   8   7   6   5   4   3   2   1

校验位: 0   X   9   8   7   6   5   4   3   2   1

13位ISBN的校验位计算方法(模数10 余数 0-9 差数 1-10 校验位:0-9)

13位ISBN校验位改变了10位ISBN的计算方法,采用奇数偶数位算法,模数也改为10,所以新的ISBN中将不出现X校验码。13位ISBN的最后一位数字为校验位,数值范围由0至9,其计算方法如下 :

方法1

(1) 用1分别乘书号的前12位中的奇数位, 用3乘以偶数位:(位数从左到右为13位到2位)

(2) 将各乘积相加,求出总和 ;

(3) 将总和除以10,得出余数;

(4) 将10减去余数后即为校验位。如相减后的数值为10,校验位则为0。

例子:

前缀号、 国别语种识别代号、出社识别代号、      书名代号、      校验位

ISBN              9   7   8-      7-       8 1 0 9 0-   0 2 1-   ?

加权数乘            1   3   1       3          1 3 1 3 1    3 1 3

9   21 8        21              8   3 0 27   0        0   2 3 = 102

102÷10= 0 余数=2

校验位= 10-2=8

有效的ISBN 是 ISBN   978-7-81090-021-8

方法2

由于模数变为10,根据模数尾数计算法则,我们可以简化计算方法,采用去整存零(个位)法计算方法如下

1. 将ISBN的偶位数按如下原则改写:

0  仍为  0

1    改成    3

2  改成  6

3  改成  9

4  改成  2 (4x3=12 舍10取2,以下同)

5  改成  5

6  改成  8

7  改成  1

8  改成  4

9  改成  7

然后自前往后,或从后到前一次算加法,逢整取个位数,然后再用这个个位数与下一个数相加,并再次逢整取个位,依次类推,直到最后。

978-7-81090-021-?

改成

918-1-83070-023-?

计算:9+1=10取0+8=8取8+1=9取9+8=17取7+3=10取0+0=0取0+7=7取7+0=7取7+0=7取7+2=9取9+3=12取2

校验位为=10-2=8

有效的ISBN 是 ISBN   978-7-81090-021-8

方法3

示范数据: 9   7   8-   7- 8   1   0   9   0- 0   2   1- ?

代码位置:13 12 11   10   9   8   7   6   5   4   3   2   1

除位数1外;

所有偶数位的数字代码求和    取末位数为a。

将a乘以3                    取末位数为b。

所有奇数位的数字代码求和    取末位数为c。

将b和c相加求和              取末位数为d(因模数为10,所以余数即末位数d)。

用10减去d即为校验位数值。

7+7+1+9+0+1 = 25            取末位数为a=5

5*3 = 15                    取末位数为b=5

9+8+8+0+0+2 = 27            取末位数为c=7

5+7 = 12                    取末位数为d=2 (余数)

10-2= 8                     差数为校验位: 8

有效的ISBN 是 ISBN   978-7-81090-021-8

余数、差数和校验位的关系

余数:    0   1   2   3   4   5   6   7   8   9

差数:   10   9   8   7   6   5   4   3   2   1

校验位: 0   9   8   7   6   5   4   3   2   1

新的ISBN 号码与条形码一样

13位新版的国际标准图书编号标准(ISBN)于2007年1月1日起实施

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值