商品条码的校验码是如何计算的
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
商品条码的校验码是如何计算的
在百度上看到这样一个问题:为什么通过下载的标签制作软件制作的商品标签的校验位和原来的不一样?并附了两张图。这里小编用中琅领跑条码标签设计软件制作了一遍发现,最后一位校验位和原来的标签一样,没什么区别。经过一番缜密的研究分析,小编就明白了个大概,原来问题就出在那位朋友所谓的免费的条形码生成工具上。问题的原因就在于校验码是由编码方案决定的,普通的条码软件是做不了那么精密的,所以通过免费的条形码生成软件生成的校验位是不同的,而且不但如此,通过一些不专业的条码批量打印软件制作出来的商品标签是有一点的风险的,而且出了事情也是没有客服咨询和解答的,。所以个人还是建议大家使用一些专业的条码标签制作软件的。言归正传,那么,条码打印软件中校验码到底是如何生成的呢?下面小编搜集了以下几种校验码的计算方法,以供参考。
首先说商品条码。商品条码中需要计算校验码的有:EAN-8(8位),EAN-13(13位),UCC(UPC-A)(12位),GTIN-14(ITF-14)(14位),GLN(13位),SSCC(18位)等。它们虽然位数不同,但计算校验码的方法完全相同。1、包含校验码的所有数字从右向左编号,分别为1,2,3......18位; 2、从第2位开始,所有偶数位的权数为3,从第3位开始,所有奇数位的权数为1;3、将对应位置的代码数字与权数相乘,参见下图(以SSCC的18位数字为例);4、将所有乘积相加求和;(结果为109);5、对第4步的和,求MOD 10运算(将和109除以10,取其余数9);6、如果余数为0,则校验码为0,否则,用10减去余数的差即为校验码。(上例中校验码为1)。
其次是身份证校验码。身份证校验码的计算比较复杂一些,
1、自右向左为身份证号编号1-18;
2、确定各位数的权数,权数的计算公式为2^(i-1) mod 11 i—位数,第3位的权数为2^(3-1)=2^2=4, 4除以11,商0余4,则权数为4。再如第5位的权数为2^(5-1)=2^4=16,16除以11,商1余5,则权数为5。
3、将权数与对应的身份证号数字相乘;
4、将所有乘积相加求和;(示例中的184)
5、将第4步的结果除以11,求余数(示例中的8);
6、从下表的R值中找到第5步的结果,对应的C值即为校验码。(示例中8对应的是4)
然后就是CODE-128码的校验符。CODE-128码的校验符不会出现在数据中,也不用读出,这里仅介绍一下计算方法,实际使用中都是由条码软件自动生成的。由于CODE-128码可以表示字母、符号、控制符,而这些字符不能直接参与计算,所以要为每个字符分配一个码值。
各个字符的码值可以参阅CODE-128码的标准文件。1、首先为字符串编制条码;2、从起始符开始,自左向右为每个条码字符编号;3、为每一个字符分配权数,起始符和第一个字符的权数为1,以后依次增加;4、每个字符的权数与码值相乘;5、所有乘积求和;6、第5步的结果除以103求余数;7、码值等于余数的字符即为校验符。EAN-128码的校验符的计算与此相同。
从以上三个例子可以看出,几乎所有的校验码的计算都是由以下步骤计算出来的:1、为代码中的每一位数字规定序号;2、给每一位代码分配一个权数;3、权数与对应的代码相乘;4、将所有的乘积相加;5、对和进行MOD(求余数)运算;6、对结果进行再处理得到校验码。
由此来看,校验码的计算还是比较精密的。稍有不慎就可能造成打印的条码标签不能被扫描,得不偿失。尤其是一些条码打印软件自动生成的校验码,其实也是甄别条码打印软件是否专业的一个方法。以上信息由郑州易网科技有限公司整理,更多详情请关注中琅条码打印软件官方网站。