检验码是由编码方案决定的,所以在代码中是否使用检验码和条码基本无关,但商品条码除外,今天给大家介绍几种校验码的计算方法。
一、商品条码
商品条码中需要计算校验码的有: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码值等于余数的字符即为校验符。
以上就是有关校验码算法的介绍,在条码生成软件中,只要输出相应的条码数据,软件即可自动计算校验位。感兴趣的用户,可以动手尝试。