条形码校验规则

40 0

条形码(一维码)是用宽窄不同、平行排列的黑条和白条表示数字或字符的图形标识,常见的有商品上的 EAN-13、物流常用的 Code 128 和外箱上的 ITF-14,扫描枪读取后即可得到编码。下面说明核对结果的方法。

条形码校验规则

校验一个 EAN-13:按“奇数位 ×1、偶数位 ×3”求前 12 位的加权和,计算出的校验码应等于第 13 位。印刷品还可以用条码检测仪按 ISO/IEC 15416 评级,A–C 级通常可以接受。

示例

输入:UPC-A 前 11 位:07203000123

计算结果:校验码 4,完整码 072030001234

说明:奇数位(第 1、3、5…位)乘 3、偶数位乘 1,加权和 36,(10 − 36 mod 10) mod 10 = 4。

计算方法

EAN-13 校验码计算:从左往右,第 1、3、5…11 位乘以 1,第 2、4、6…12 位乘以 3,求加权和 S,校验码 = (10 − S mod 10) mod 10。例如 690123456789,加权和为 6+27+0+3+2+9+4+15+6+21+8+27=128,128 mod 10 = 8,校验码为 2,完整码 6901234567892。

Python 示例

下面是用 Python 实现的写法,可以按需要修改:

def ean13_check(d12: str) -> int:
    s = sum(int(c) * (3 if i % 2 else 1) for i, c in enumerate(d12))
    return (10 - s % 10) % 10

print(ean13_check('690123456789'))  # 2

JavaScript 示例

下面是用 JavaScript 实现的写法,可以按需要修改:

function ean13Check(d12) {
  let s = 0;
  for (let i = 0; i < 12; i++) s += Number(d12[i]) * (i % 2 ? 3 : 1);
  return (10 - s % 10) % 10;
}
console.log(ean13Check('690123456789')); // 2

本站的条形码生成器工具可以直接在网页中使用,无需安装,适合快速得到和核对结果。

常见问题

【校验码怎么算?】EAN-13 前 12 位奇数位乘 1、偶数位乘 3 求和,用 10 减去和的个位数,结果为 10 时取 0。

【条形码扫不出来怎么办?】检查打印是否清晰、空白区是否足够、颜色对比度和校验码是否正确。

【条形码能存汉字吗?】一维条码基本不支持汉字,需要存中文时请改用二维码。

文中示例可以在本站对应工具中核对。

署名:123问编辑部 · 最近修订:2026-11-11 · 已按编辑与审核说明检查;内容仅供参考,不构成医疗、法律或投资建议。发现错误可查看纠错方式。

标签: 条形码 实用工具

抱歉,评论功能暂时关闭!