一维条码校验码及其算法详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
1
代码
6
9
0
1
2
3
4
X1
4+2+0+6=12
①
库巴德条码(模 16 补码)、三九条码、店内条 码中含价格或度量值的本体码的权值均为 1。
GS1-128 条码权值从左边数第 2 位,是从 1 开
b ) ①×3=② c)从序号 3 开始求出奇数位 上数字之和③
12×3=36
②
3+1+9=13
③
d)②+③=④
校验码算法
校 验 码 算 法 有 奇 偶 校 验 、海 明 校 验 、循 环 冗 余 校 验 (CRC)、纵向冗余校验、累加和校验、加总异或校验等,大多 数一维条码主要采用了模数加权和累加和校验的算法,以下 着重就这两种算法进行介绍。
些校验码算法,本文介绍并分析了计算不同条码结构的校
验码时,涉及到的本体码权值、模数和计算公式。
模数加权和累加和校验算法原理
定义
累加和校验算法是指将本体码的值进行累加计算,算 出的总和取余后作为校验码。
校验是数学术语,指为验证数据准确性采用的识别及
模数加权算法是给每一位本体码分配一个加权值,将
校正数据错误的一种方式。校验码也称校验位,是附加在 本体码的值与加权值依次相乘,再计算总和,用该和数除以
表 2 有以下特点: EAN/UCC- 8、UCC- 12、EAN/UCC- 13、EAN/UCC- 14、13 位中国标准书号、交插二五条码、14 位储运包装商品条码、 库巴德条码(模 10 补码)等 8 种的偶数位权值均为 3 或 2,奇 数位权值均为 1,因此可以简化总和的计算,简化的计算方
公式中: n ——本体码和校验码的编码个数; i ——从右边开始,编码所在位置索引,i =1 表示最右 边编码(通常是校验码),空格和分割符不包括在内; X1 ——校验码,仅有库巴德条码(模 16 补码)的校验码 是 X2 ; Xi ——在 i 位置上的编码; Ri ——在 i 位置上的权值; C ——计算总和后,需要加的常数;
③
准书号》规定,2007 年以后已基本上不再使用该 条码。
求余的模数
算出本体码的值与权值相乘的总和后,再除 去的模数如表 3(见下页)。
d)②+③=④
102+26=128
④
e)用大于或等于结果 ④且为 10 的整数倍 的最小数减去④,其 差即为所求校验码的
值
130-128=2 校验码 X1=2
计算校验码
验算法。 国标 GB12904-2008《商品条码 零售商品编码与条码表
示》附录 B 中分别给出了 8 位和 13 位编码校验码的计算方法 示例,参见图 1 和图 2(见下页)。
算,得出一个校验结果,将开始输入系统的校验码和此校验 结果进行比较。如果两者一致,表明该组数字或编码正确; 不一致,表明该组数字或编码输入错误。
本体码对应的权值
n
∑ X2 = CHR( M - (( (ASC (Xi)·Ri) +ASC (X1)·R1 MOD M )) i=3 公式 3: n
∑ X3 = CHR(( (ASC (Xi)·Ri ))MOD M ) i=2
计算本体码的值与对应权值相乘的总和是模数加权和 累加和校验算法的第一步,因此,找出并列明所有条码结构 对应的权值,可以更方便地计算这些条码总和,不同条码结 构的权值参照表 2(见下页)。
计算公式有三种: 公式 1:
图 2 国标 GB12904-2008《商品条码 零售商品编码与条码表示》 13 位编码校验码计算方法示例
公式 2:
n
∑ X1 = CHR( M - (( (ASC (Xi)·Ri) + C )MOD M )) i=2
法的一维条码国家标准共 10 种,如表 1(见下页)。从表 1 可 以看出,这些国家标准中主要用到了 5 种一维条码码制的校 验码算法。
36+13=49
④
e) 用大于或等于结果④且为 10 的整数倍的最小数减去 ④,其差即为所求校验码的值
50-49=1 校验码 X1=1
图 1 国标 GB12904-2008《商品条码 零售商品编码与条码表示》 8 位编码校验码计算方法示例
始的顺序号;10 位中国标准书号从右边数第 2 位, 是从 2 开始的顺序号。
模数加权算法的特例。 有的一维条码如三九条码,直接用编码值计算得出校
验码,而店内条码中的含价格或度量值的本体码,虽然采用 加权积方式计算校验码,但仍可归为模数加权和累加和校
校验原理
计算机或其它识读设备将一组数字或编码输入系统 时,系统先把这组数字或编码转换成可识别的十进制数字, 利用已知的校验算法对这组数字或编码的本体码进行计
一组数字或编码后,由这些数字或编码通过某种运算得出 模数,得出余数,最后用模数减去余数,所得差值对应的编
的一位或几位,用以检验该组数字或编码的正确性。校验 码即为校验码。可以认为,累加和校验算法是加权值为 1 的
码技术在通讯、信息、软件、身份识别等领域应用十分广泛, 如网络传输的 TCP/IP 协议、公民和企事业单位的证件、物品 和服务的编码等。在一维条码中,校验码只能用于检错。
自右向左顺序编号
a)从序号 2 开始求出 偶数位上数字之和①
b )①×3=② c)从序号 3 开始求出 奇数位上数字之和③
位置序号 13 12 11 10 9 8 7 6 5 4 3 2 1
代码
6 9 0 1 2 3 4 5 6 7 8 9 X1
9+7+5+3+1+9=34
①Βιβλιοθήκη Baidu
34×3=102
②
8+6+4+2+0+6=26
当本体码均是数字时,计算总和仅需偶数位 乘 以 权 值 的 和 再 加 上 奇 数 位 的 和(店 内 条 码 除 外);本体码可以是非数字时,有的一维条码仅需 计算本体码的值的总和,有的一维条码计算本体 码的值依次与顺序号乘积的和。10 位中国标准
步骤
举例说明
书号是特例,但按照国标 GB/T 5795-2006《中国标
条码质量
一维条码校验码及其算法详解
青岛市标准化研究院 张广庆 苏 涛 辽宁工业大学 顾婉晴
一维条码是由一组规则排列的条、空组合及其对应的 供人识别字符组成的标记,一般由本体码和校验码构成,通 过本体码识别对象种类,校验码用于辨别本体码在人员输 入或印刷、识读、传输过程中是否有错。在国内,涉及一维 条码校验码及其算法的国家标准有十种,经过整理、对比这
国家标准中的校验码算法
国标 GB/T 12905-2000《条码术语》定义了含校验码算
42
条码与信息系统 2018 年第 2 期
BAR CODE & INFORMATION SYSTEM
步骤
举例说明
法将在下文中介绍。
自右向左顺序编号
a)从序号 2 开始求出偶数位 上数字之和①
位置序号 8
7
6
5
4
3