10位ISBN和13位ISBN校验码的计算方法[转]

时间:2024-03-03 20:16:59

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日起实施