发新帖

有关条码校验位算法介绍

152 0

检验码是由编码方案决定的,所以在代码中是否使用检验码和条码基本无关,但商品条码除外,今天给大家介绍几种校验码的计算方法。

一、商品条码

商品条码中需要计算校验码的有: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.将对应位置的代码数字与权数相乘

4.将所有乘积相加求和;(结果为109)

5.对第4步的和,求mod 10运算(将和109除以10,取其余数9);

6.如果余数为0,则校验位为0,否则,用10减去余数的差即为校验码。

Code 128码的检验符

Code 128码的校验符不会出现在数据中,也不用读出,这里仅介绍一下计算方法,实际使用中有条码生成软件自动生成,由于Code 128码可以表示字母、符号、控制符,而这些字符不能直接参与计算,所以要为每个字符分配一个码值。各个字符的码值可以参阅code 128的标准文件。

1.首先为字符串编制条码;

2.从起始符开始,自左向右为每个条码字符编号;

3.为每一个字符分配权数,起始符和第一个字符的权数为1,以后依次增加。

4.每个字符的权数与码值相乘;

5.所有乘积求和;

6.第5步的结果除以103求余数;

7码值等于余数的字符即为校验符。

以上就是有关校验码算法的介绍,在条码生成软件中,只要输出相应的条码数据,软件即可自动计算校验位。感兴趣的用户,可以动手尝试。