标签工具 文章 帮助 授权码.支付

如何计算条形码Code128校验码

原创未经同意,请勿转载 2023-07-29 1073次阅读

Code128也是需要校验码的,只不过Code128的校验码不会显示出来,只是在生成条形码时,由条形码生成工具写到条形码中,扫码时由扫码设备解析读取出来,自动完成验证。

正因为看不见也无须人工干涉,所以Code128的校验码容易被忽略。

上图条形码编辑工具来源于条形码生成器,无须任何安装,点击即可在线使用。

然而,如果希望深入了解条形码原理,对于常用的码制Code128的校验码的计算方式,是有必要学习了解的。以下结合简单的例子,为您讲解Code128校验码的生成过程。

Code128校验码的计算过程

首先,将所有条形码的字符,按照生成的字符集,查询Code128字符集的对照表,找到字符对应的字符值,也即是字符在表中最左侧的序号。

然后,将每一个字符值乘以权数,再将所有乘积相加,对求得的和,除以103,取余数,这个余数是字符值(即字符集的序号),也即是校验值

需要注意的是,上面提及的权数,开始符的权数是1,后续的字符的权数再由1开始逐个递增加1,即第1个字符是开始符权数是1,第2个字符也是1,第3个字符是2,第4个字符是3,...,依此递增。

还需要注意,校验码是计算的结果,不参与运算,还有终止符也是不参与以上所有的运算。

如果以上的内容没有看懂,没有关系,以下多零为您举例说明,会更加直观容易理解。

举个例子

例如,使用Code128的字符集A,生成内容为“ABC”的条形码,计算其校验码的过程如下:

  1. 从字符集A对照表中,分别找到开始符、“A”、“B”、“C”四个字符值;

    其字符值分别为103、33、34、35。

  2. 将字符值乘以权数,再相加求和;

    开始符的权数是1,第2个字符“A”的权数也是1,第3个字符“B”的权数递增是2,第4个字符“C”的权数递增是3。

    结果字符值计算过程是:(103×1)+(33×1)+(34×2)+(35×3)=309

  3. 将上一步的计算结果,除以103,取余数;

    即是309%103=0 。计算结果0即是字符值(字符集中的序号),也即是校验码。

最终这个示例的完整的条形码字符值是103、33、34、35、0 ,当然,结尾处还需要加上终止符,但由于终止符是没有字符值的,所以没有加上。

Code128条码字符集哪里获取?

Code128校验码的计算过程中,查询Code128字符集表是关键步骤之一,那么,如何获取到Code128字符集对照表?

网络搜索即可找到很多Code128字符集的相关信息。如果希望获取正式的官方文档,可以查找国际标准【ISO/IEC 15417:2007】、以及国内标准【GB/T 18347-2001】和【GB/T 15425-2014】的文档,里面都有完整的Code128字符集对照表。

----------------------------

参考资料:

GB/T 18347-2001:https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=0BCD55B8A55B2922C0FFD40FEE3CDD79

GB/T 15425-2014:https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=AF88702439737AB50E248CC1A6B706C2

---------------

了解更多: 如何计算条形码EAN13的校验码

最新文章 如何强制生成校验码什么是缓存、存档数据?如何使用存档数据功能如何制作标准尺寸的EAN/UPC条形码关于自动补全、纠正Ean13、Ean8、UPC、UPC-E、ITF14校验码如何查询、删除重复数据行2023-11-29 突发网络故障情况说明批量导出不宜超过3000个什么是EAN13的右侧空白区如何设置SC规格尺寸什么是EAN\UPC的SC规格尺寸?如何添加EAN\UPC的附加符号?如何添加GS1-128的分隔符FNC1EAN\UPC的附加符号:EAN5、EAN22023-09-10 多零故障处理公告