商品条码校验码的计算参考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}")
© 2015-2025 杭州极速互联科技有限公司 版权所有 浙ICP备17047587号-4 浙公网安备33010502005096 增值电信业务经营许可证:浙B2-20190875