您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 10位和13位ISBN校验码计算方法
ISBN的构成ISBN号码由10位数字组成,并以三条线段加以分割,每组数字都有不同的含义。第一组:区位代码0,1:英文2:法文3:德文4:日文5:俄文7:中文第二组:出版社代码由各国的ISBN码分配中心,分给各个出版社。第三组:书序码该出版物代码,由出版社具体给出。第四组:计算机校验码只有一位,从0到10,10由X代替。?校验码的计算方法1.假设某ISBN号码前11位是:7-309-04547;2.计算加权和S:S=7×10+3×9+0×8+9×7+0×6+4×5+5×4+4×3+7×2=226;3.计算S÷11的余数M:M=226mod11=6;4.计算11-M的差N:N=11?6=5?如果N=10,校验码是字母“X”;?如果N=11,校验码是数字“0”;?如果N为其他数字,校验码是数字N。所以,本书的校验码是5。?ISBN与EANEAN:EuropeanArticleNumber(欧洲商品号),ISBN中心于2004年决定在ISBN的基础上再添加一组三位数字在最前,即將現有的10位書號前面加上978及重新計算稽核號,以轉換為新的13位格式。该计划将于2007年实施。?注释13位ISBN的最后一位校验位的加权算法与10位ISBN的算法不同。具体算法是:用1分别乘ISBN的前12位中的奇数位,用3乘以偶数位,成绩之和以10为模,用10减去此模,即可得到校验位的值,其值范围应该为0-91.假设某13位ISBN号码前15位(包含‘-’符号)是:987-7-309-04547;2.位置为123-4-567-89(10)(11)(12)3.计算加权和S:S=9×1+8×3+7×1+7×3+3×1+0×3+9×1+0×3+4×1+5×3+4×1+7×3=117;4.计算S÷10的余数M:M=117mod10=7;5.计算10-M的差N:N=10?7=3(如果10-M的值为10则校验码取0)6.所以,本书的13位ISBN的校验码是3。/**假设某ISBN号码前11位是:7-07-045474;计算加权和S:S=7×10+0×9+7×8+0×7+4×6+5×5+4×4+7×3+4×2=171;计算S÷11的余数M:M=171mod11=6;计算11-M的差N:N=11?6=5如果N=10,校验码是字母“X”;如果N=11,校验码是数字“0”;如果N为其他数字,校验码是数字N。*/privatestaticStringgetV(Strings){char[]tmp=s.toCharArray();intj=10;intsum=0;for(inti=0;i9;i++){intdd=Integer.parseInt(tmp[i]+);sum=sum+j*dd;j--;}sum=sum%11;sum=11-sum;if((sum+).equals(10))returnX;if((sum+).equals(11))return0;returnsum+;}
本文标题:10位和13位ISBN校验码计算方法
链接地址:https://www.777doc.com/doc-2646682 .html