You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算符合GS1标准的GS1-128 SSCC条码校验位

符合GS1规范的SSCC条码校验位计算方法

SSCC组成说明

SSCC条码由两部分拼接而成:

  • GTIN编号:示例为1234567(7位)
  • 标识符:示例为123456789(9位)
    拼接后得到16位的原始SSCC串,再通过GS1规范的算法计算出第17位校验位,最终组成完整的17位SSCC条码。

校验位计算逻辑(GS1规范)

  1. 取16位的原始SSCC串,从右往左为每位数字分配权重:
    • 奇数位置(从右数第1、3、5...15位)权重为1
    • 偶数位置(从右数第2、4、6...16位)权重为3
  2. 将每位数字与对应权重相乘,把所有乘积相加得到总和
  3. 计算总和的下一个10的整数倍(比如总和是123,下一个10的倍数就是130)
  4. 用这个10的倍数减去总和,结果就是校验位;如果总和刚好是10的倍数,校验位为0

Python实现代码

以下是实现ADD_CHECKDIGIT_SSCC函数的代码,直接代入你的示例即可使用:

def ADD_CHECKDIGIT_SSCC(raw_sscc):
    # 校验输入格式:必须是16位数字字符串
    if len(raw_sscc) != 16 or not raw_sscc.isdigit():
        raise ValueError("原始SSCC必须是16位数字字符串")
    
    total = 0
    # 从右往左遍历每个字符,索引0对应右数第1位
    for idx, char in enumerate(reversed(raw_sscc)):
        digit = int(char)
        # 右数奇数位(索引偶数)乘1,偶数位(索引奇数)乘3
        total += digit * 1 if idx % 2 == 0 else digit * 3
    
    # 计算校验位,确保结果在0-9之间
    check_digit = (10 - (total % 10)) % 10
    return raw_sscc + str(check_digit)

# 示例使用
GTIN = '1234567'
Identifier = '123456789'
raw_sscc = GTIN + Identifier
SSCC_code = ADD_CHECKDIGIT_SSCC(raw_sscc)
print(SSCC_code)  # 输出完整的17位SSCC条码

内容的提问来源于stack exchange,提问作者Shwans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:22:53