精华内容
下载资源
问答
  • 最近工作涉及计算条形码第 13位校验位批量更改, AI、条码打印机、条码扫描器等软件内置生成校验位,网上搜索也找了条码生成器,但对我们来说不够灵活,编写了一个小程序 计算校验位 OK 先看看PHP版的,跟网上...

    最近工作涉及计算条形码第 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

    展开全文
  • 条形码校验计算

    千次阅读 2019-09-01 15:08:23
    一、概述 ...二、条形码校验码 交叉二五码具有自校验功能,当有检验位的时候,校验位由前面字符经过一定的算法得到。交叉码用的是Mod10D校验算法。 如序列号为“2345678”,计算方法如下: a. 序列号奇...

    一、概述

    条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。
    在这里插入图片描述

    二、条形码校验码

    交叉二五码具有自校验功能,当有检验位的时候,校验位由前面字符经过一定的算法得到。交叉码用的是Mod10D校验算法。
    如序列号为“2345678”,计算方法如下:

    • a. 序列号奇数位的总和乘以3
    • b. 序列号偶数位的总和
    • c. 步骤a+步骤b的总和
    • d. 步骤c的值,整除10,10 减去所得余数即为校验位
      (添加校验码后若为奇位数,则在左侧自动补0)

    C语言实现校验码计算算法示例:

    /*************************************************************************
    函数名称:CalcMacCheck
    功能说明:计算mac的校验码。
    输入参数:*mac,待计算校验码的mac数据。
    输出参数:无。
    返回参数:计算后的校验码。
    *************************************************************************/
    uint8_t CalcMacCheck(uint8_t *mac)
    {
        uint8_t i = 0;
        uint8_t check = 0;
       
        for (i = 0; i < 7; i++)
        {
            check += (mac[i] & 0x0f) + ((mac[i] >> 4) & 0x0f) * 3;
        }
        check += ((mac[7] >> 4) & 0x0f) * 3;
       
        check %= 10;
        if (check > 0)
        {
            check = 10 - check;
        }
       
        return check & 0x0f;
    }
    
    展开全文
  • ... 同学们一定见过商品的条形码吧!商品条形码是一个13位数,它是商品的“身份证”.条形码中前8是厂商识别代码,接着4是商品项目代码,最后一校验码,校验码是由前12...

    http://www.jyeoo.com/math/ques/detail/4efb9e41-6a5d-44ad-bfc8-36aef3abfaa4 

    http://baike.baidu.com/view/13740.htm 

    同学们一定见过商品的条形码吧!商品条形码是一个13位数,它是商品的“身份证”.条形码中前8位是厂商识别代码,接着4位是商品项目代码,最后一位是校验码,校验码是由前12位数按一定公式计算而得出的.其计算公式见下表.

    步骤 举例说明
    1.自右向左编号 某商品条形码为:690123456789X(X为校验码)
    位置序号 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
    校验码X=2

     

    来源 :http://www.cnblogs.com/djlzxzy/archive/2011/08/10/2134267.html

    转载于:https://www.cnblogs.com/eycbest/archive/2011/12/30/2307935.html

    展开全文
  • 条形码校验码生成

    2019-09-20 22:12:38
    //判断25码的校验位是否正确///*交叉25码校验位的计算规则。交叉25码的校验位计算方法是 Mod 10 : 1、字符个数为偶数时为:10的倍数-[奇数位的数字之和(从左至右)+(偶数位数字之和)*3个位数] 2、字符个数为奇数时为...

    //判断25码的校验位是否正确
    //
    /*
    交叉25码校验位的计算规则。
    交叉25码的校验位计算方法是 Mod 10 :

    1、字符个数为偶数时为:10的倍数-[奇数位的数字之和(从左至右)+(偶数位数字之和)*3个位数]
    2、字符个数为奇数时为:10的倍数-[偶数位的数字之和(从左至右)+(奇数位数字之和)*3个位数]
    如:

    514362的校验位为10*X-[(5+4+6)+3*(1+3+2)]=7(因加校验位后个数为奇数,故前面加0后为05143627。

    76534的校验位为10*X-[(6+3)+3*(7+5+4)]=3
    */

    //string ls_checkcode
    //ls_checkcode = right(astr_code,1)

    string ls_basecode
    //ls_basecode = left(astr_code,len(astr_code) - 1)
    ls_basecode = astr_code

    //奇数,偶数位和
    int oddsum,evensum,i
    oddsum = 0
    evensum = 0
    for i =1 to len(ls_basecode)
    if mod(i,2) = 1 then
    oddsum = oddsum + integer(mid(ls_basecode,i,1))
    else
    evensum = evensum + integer(mid(ls_basecode,i,1))
    end if
    next
    //根据位数选择判断方法
    //1、字符个数为偶数时为:10的倍数-[奇数位的数字之和(从左至右)+(偶数位数字之和)*3个位数]
    //2、字符个数为奇数时为:10的倍数-[偶数位的数字之和(从左至右)+(奇数位数字之和)*3个位数]
    int isum
    if mod(len(ls_basecode),2) = 1 then
    //个数为奇数
    isum = evensum + oddsum * 3
    else
    //个数为偶数
    isum = evensum * 3 + oddsum
    end if
    //校验位 = isum个数位与10取补
    int icheck
    icheck = 10 - mod(isum,10)
    //10的补为0
    if icheck = 10 then
    icheck = 0
    end if
    /*
    if ls_checkcode = string(icheck) then
    return true
    else
    return false
    end if
    */
    return string(icheck)

    转载于:https://www.cnblogs.com/kuailewangzi1212/p/3143759.html

    展开全文
  • 一维商品条形码校验位算法

    千次阅读 2011-10-09 12:10:40
    package day04; /** * 计算校验符的过程为: 前12的奇数的和c1:6 + 0 + 2 + 4 + 6 + 8 = 26 前12的偶数和c2:9 + 1 + * 3 + 5 + 7 + 9 = 34 * * 将奇
  • 今天一来上班看到同事群里面说起EAN-13标准条形码最后一位校验码的事... /* EAN-13标准条形码最后一位校验码的计算步骤如下: a、从代码位置序号2开始,所有偶数的数字代码求和。 b、将步骤a的和乘以3。 c、从代码...
  • 一、校验码说明: ...2.计算步骤校验码计算步骤如下:a.从代码位置序号2开始,所有偶数的数字代码求和。b.将步骤a的和乘以3。c.从代码位置序号3开始,所有奇数的数字代码求和。d.将步骤b与步骤c的结...
  • 最近项目需要计算零售商品条码的最后一位校验码,在网上没找到具体实现方式,于是自己写了一个。 感觉写的比较简单冗余,还有待改进之处,欢迎指出 相互学习~ /** * 获取条码校验值 * 13条码 code 示例:...
  • 条形码校验--oracle 函数

    千次阅读 2010-12-02 15:38:00
    在书中看到了一段关于条形码校验的标准SQL,尝试着将其用oracle 实现, 那知水平太浅,遂去论坛向大侠们讨教, 长进了不少,再次谢谢大家了,   本文将高手们的妙招,结果及相关知识整理出来。以便随时查看。  ...
  • js生成条形码,并附有校验位

    千次阅读 2018-08-07 16:44:56
    1.条形码里最后一验证码是什么作用 校验码不是条码特有的,凡是需要机读的代码几乎都离不开校验码,如银行账号,身份证号,快递单号,商品编码等等。校验码的作用是保证机读时读取代码的正确性,用读到的校验码与...
  • 校验码计算步骤如下: a.从代码位置序号2开始,所有偶数的数字代码求和。 b.将步骤a的和乘以3。 c.从代码位置序号3开始,所有奇数的数字代码求和。 d.将步骤b与步骤c的结果相加。 e.用大于或等于步骤d...
  • Code128条形码是一个非常高密的字母数字条码,能够存储需要的编码数据,它可以编码所有128个ASCII码字符,它使用最少的空间。 在Code128符号体系中,每个数据字符编码都是由11个黑或白模块组成,这11个模块由三个条...
  • EAN13条形码校验公式及代码实现

    千次阅读 2016-06-23 17:03:22
    计算校验位的步骤如下: 将最右边一个数位作为“奇数”位,从右向左为每个字符指定奇数/偶数位。 对所有奇数位上的数值求和,将结构乘以3。 对所有偶数位上的数值求和。 对第2步和第3步计算的结果求和。 校验位的...
  • 例如:(已计算出正确的) 条码:211220117276b140350241 校验码:33 条码:211220117236b220350599 校验码:51 条码:211220117236b220350631 校验码:C6
  • 2. 计算步骤校验码计算步骤如下:a.从代码位置序号2开始,所有偶数的数字代码求和。b.将步骤a的和乘以3。c.从代码位置序号3开始,所有奇数的数字代码求和。d.将步骤b与步骤c的结果相加。e.用大于或等于步骤d...
  • 条形码识别(4)——校验

    千次阅读 2016-01-29 15:48:57
    目标EAN13条形码一共有13位,最后1位是校验位,该位是通过前12位按照一定的步骤计算出来的。如果按照一定的步骤处理识别出的前12位数据,如果计算结果和识别出的结果相等,识别正确;如果不相等,则重新识别或纠错再...
  • 这几天在研究条形码 这是ean13的校验计算方式 不然生成条形码怕是要崩啊 哈哈 /** * 校验输入的是否12个数字 * * @param Stringtemp 需要生成的12个数字 如“123456789111” */ private static boolean ...
  • 例如:(已计算出正确的) 条码:211220117276b140350241 校验码:33 条码:211220117236b220350599 校验码:51 条码:211220117236b220350631 校验码:C6
  • cout请输入12位条形码"; string a cin>>a>>; for(int i=0;i;i++){ num=a[i]; k++; if(k%2==0){ b[n]=a[i]; n++; } else{ c[m]=a[i]; m++; } } d=b*3+c; e=(d/10+1)*10; f=e-d; cout; return 0; }
  • ISBN概述 因为工作原因经常需要用到ISBN。ISBN是国际标准书号的简称(International Standard Book Number),主要用于标识文献,也即是文献的...ISBN算是国际商品编码的一个子集,一般在书的封底看见的条形码就是
  • 计算验证条形码(Ean-13码)

    千次阅读 2013-06-04 21:28:30
    Ean-13规则:第十三位数字是前十二位数字经过以下计算得到的校验符 例如:690123456789 计算器校验符的过程为: 前十二位的奇数位的和:6+0+2+4+6+8=26 ...(注意:如果去结果的个位数为0,那么校验位
  • create function p_check_txm_xlw (@txm char(13)) returns char(13) as begin --传入 13位条形码(eg: 1234567890123) 计算 条码校验位 ,输出1 则校验位正确,0,不正确 if ...
  • 条形码编码规则

    千次阅读 2013-05-15 18:57:05
    条形码中前8是厂商识别代码,接着4是商品项目代码,最后一校验码,校验码是由前12位数按一定公式计算而得出的.其计算公式见下表. 步骤 举例说明 1.自右向左编号 某商品条形码为:...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

条形码校验位计算