条形码 校验位 计算公式 PHP、T-SQL 程序

最近工作涉及计算条形码第 13位校验位批量更改, AI条码打印机、条码扫描器等软件内置生成校验位,网上搜索也找了条码生成器,但对我们来说不够灵活,编写了一个小程序 计算校验位

条形码 条码打印机 条码扫描器

OK 先看看PHP版的,跟网上搜索到的简单了不少


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

//测试
$t="6939762911740";
echo en13($t);

还有要把MSSQL数据库中的数据批量更新 就不写程序了 直接在sql企业管理器里更新

T-SQl代码



declare @str as varchar(15)
declare @tmp as varchar(30)
declare @t1 as int
declare @t2 as int
declare @i int 
set @t1=0
set @t2=0
set @str='6939762911740'
set @i=1 
while @i<=12 
begin 
	if @i % 2=0 
		begin
			set @t1=@t1+substring(@str,@i,1)
		end
	else
		begin
			set @t2=@t2+substring(@str,@i,1)
		end	
	set @i=@i+1 
	
end

set @tmp=(10-(@t1*3+@t2)%10)%10

--end function
SELECT @t1 ,@t2,@tmp
ENA-13校验码的计算方法代码位置序号代码位置序号是指包括校验码在内的,由右至左的顺序号(校验码的代码位置序号为1)。 计算步骤校验码的计算步骤如下:a.从代码位置序号2开始,所有偶数位的数字代码求和。b.将步骤a的和乘以3。c.从代码位置序号3开始,所有奇数位的数字代码求和。d.将步骤b与步骤c的结果相加。e.用大于或等于步骤d所得结果且为10最小整数倍的数减去步骤d所得结果,其差即为所求校验码的值。示例:代码690123456789X1校验码的计算见表1。 表1 校验码的计算方法步 骤 举 例 说 明 1.自右向左顺序编号 位置序号 13 12 11 10 9 8 7 6 5 4 3 2 1                        代码 6 9 0 1 2 3 4 5 6 7 8 9 X 2.从序号2开始求出偶数位上数字之和① 9+7+5+3+1+9=34      ① 3. ①*3=② 34×3=102         ② 4.从序号3开始求出奇数位上数字之和③ 8+6+4+2+0+6=26      ③ 5. ②+③=④ 102+26=128        ④ 6.用大于或等于结果④且为10最小整数倍的数减去④,其差即为所求校验码的值 130-128=2校验码X1=2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值