公司信息 解决方案 条码设备 条码耗材 工业设备 服务与支持 联系我们

 


您的位置:  敏用首页




Code128条形码的校验位码是怎么计算出来的?

发布时间: 2013-3-24 9:00:39
双击自动滚屏打印此页】【关闭本页

问题:
哪位知道Code128B条码的检验码是怎样计算的,条码是35925404143996产生了一个校验码9,9是怎样算出来的?
 
 
敏用数码解答:
 
标准Code128本身是没有校验位的,你说的校验位是通过另外的算法来生成的,用于系统对条形码的核准。
 
35925404143996,校验码为9,这个校验算法应该是Luhn算法。
 
Luhn算法由IBM的Hans Peter Luhn发明,又称为“模10”算法,是一种简单的校验和算法,用来验证识别号,比如信用卡号、IMEI号、社会保险号等。它的算法简单,并只采用最后一位数字作为校验位,可以有效防止偶然的输入性错误。Luhn算法只能用于简单的校验,不能用于加密算法,当然,这也不是该算法的目的。Luhn算法可以检测到以下输入性错误:所有的单位数字错误,如210写作215;能检测到绝大多数的临位错位,比如315写作351,但是只有两位的情况下无法检测,比如09写作90;能够检测双数字写错10种的7种,比如11写为22,但是有3种无法检测,如22和55、33和66、44和77。

Luhn算法实现:
以10位数字“7992739871”为例, Luhn算法可以这样描述:
1、从右往左,隔位乘2:比如1乘2得到2,8乘2得到16;
2、清理两位数字:如果乘以2得到的数字是两位,即大于等于10,就把这两位相加得到一位数字。比如步骤1中的2不需要相加,16的两位相加得到7;
3、相加模10:把步骤2得到的各位数字相加(本例为67),以10取模后(本例为7),用10相减即得到校验数字(本例为3)。当然如果得到10就按0计算。
 
按照Luhn算法,我们来对35925404143996的校验位进行分析得出:
原始数字  3  5  9  2  5  4  0  4  1  4  3  9  9  6  
隔位乘2  3  10  9  4  5  8  0  8  1  8  3  18  9  12  
清理两位数字  3  1  9  4  5  8  0  8  1  8  3  9  9  3  
相加模10                              71%10=1
用10减                              9
 
根据Luhn算法,条形码35925404143996生成的校验位为9。
 
 
条码扫描器 数据采集器

 


相关同类信息:
  • 条形码694976760001x效果怎么制作?Bartender可行
  • 关于条形码的一道数学应用题
  • 服装商标上没有条形码,能否用打价器打数字来代替呢?
  • NicelLabel软件如何实现图像的显示和隐藏?
  • 客户提供的条形码与CORELDRAW生产的条形码不一致,怎么解决?
  • 默认打印的13位CODE128C条形码,自动变为14位时不匹配,什么问题呢?
  • 如何用Bartender将日期变量和序列号变量两个放在一起打印成条码?
  • Bartender软件中为什么不能随意调整code39条形码的密度呢?

  •  
    © 2003-2007 ChongShang.Com.Cn.