首页 新闻动态 技术文章

商品条码校验码的计算示例代码

发布时间:2025-04-11 21:39 点击:101

商品条码校验码的计算参考https://www.jisuapi.com/news/detail/611,下面提供一些常用语言的计算代码,供参考。

PHP示例代码:

/**
 * 生成校验位
 *
 */

function makeNum($barcode)
{
    if(strlen($barcode) < 12) return false;   
    $tmp1 = $tmp2 = 0;
    for($i=0; $i<12; $i++)
    {
       if($i % 2 == 0) $tmp1 += intval(substr($barcode, $i, 1));
       else $tmp2 += intval(substr($barcode, $i, 1));
    }   
    return (10 - ($tmp2 * 3 + $tmp1) % 10) % 10; 
}

Python示例代码:

def calculate_digit(barcode):
    """
    计算EAN - 13条码的校验位
    :param barcode: 不包含校验位的12位条码字符串
    :return: 校验位数字
    """
    if len(barcode) != 12 or not barcode.isdigit():
        raise ValueError("输入的条码必须是12位数字字符串")
    odd_sum = sum(int(barcode[i]) for i in range(0, 12, 2))
    even_sum = sum(int(barcode[i]) for i in range(1, 12, 2))
    total_sum = odd_sum + 3 * even_sum
    check_digit = (10 - (total_sum % 10)) % 10
    return check_digit

# 示例
barcode = "690123456789"
check_digit = calculate_digit(barcode)
print(f"EAN - 13条码 {barcode} 的校验位是: {check_digit}")