EAN校验码的计算方法
末位为校验码
/**
EAN码校验位的计算方法
从代码位置序号2开始,所有偶数位的数字代码求和为a。
将上步中的a乘以3为a。
从代码位置序号3开始,所有奇数位的数字代码求和为b。
将a和b相加为c。
取c的个位数d。
用10减去d即为校验位数值。
例:234235654652的校验码的计算如下表:
数据码 校验码
代码位置序号 13 12 11 10 9 8 7 6 5 4 3 2 1
数字码 2 3 4 2 3 5 5 5 4 6 5 2 ?
偶数位 3 + 2 + 5 + 5 + 6 + 2
奇数位 2 + 4 + 3 + 5 + 4 + 5
步骤1:3+2+5+5+6+2=23
步骤2:23*3=69
步骤3:2+4+3+5+4+5=23
步骤4:69+23=92
步骤5:10-2=8
步骤6:校验码为 8
数据码 校验码
代码位置序号 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
数字码 2 0 0 0 0 0 5 0 0 2 2 0 0 0 1 4 7 ?
偶数位 2 + 0 + 0 + 5 + 0 + 2 + 0 + 1 + 7
奇数位 0 + 0 + 0 + 0 + 2 + 0 + 0 + 4
步骤1:2+0+0+5+0+2+0+1+7=17
步骤2:17*3=51
步骤3:0+0+0+0+2+0+0+4=6
步骤4:51+6=57
步骤5:10-7=3
步骤6:校验码为 3
*/
/// <summary>
/// EAN码校验位的计算
/// </summary>
/// <param name="szCode"></param>
/// <returns></returns>
private bool GetVerifyBit(ref string szCode)
{
int nNum1 = 0;
int nNum2 = 0;
int nNum3 = 0;
int szLen = 0;
if ( szCode == null )
return false;
szLen = szCode.Length;
if(szLen <=12 || szLen >= 17)
return true;
for ( int i=0; i<szLen; i++)
{
if ( i%2 == 0 )
{
nNum2 += int.Parse(szCode[i].ToString()); //偶数
}
else
{
nNum1 += int.Parse(szCode[i].ToString()); //奇数
}
}
nNum3 = (Operator.DiscountLabelBarLength % 2 ==0) ? nNum1 + nNum2 * 3 : nNum1 * 3 + nNum2 ;
int t ;
if(nNum3%10>0) t= 10- (nNum3 % 10) ;
else t=0;
szCode+=t;
return true
}
/// <summary>
/// EAN码校验位的计算
/// </summary>
/// <param name="szCode"></param>
/// <returns></returns>
private bool GetVerifyBit(ref string szCode)
{
int nNum1 = 0;
int nNum2 = 0;
int nNum3 = 0;
int szLen = 0;
if ( szCode == null )
return false;
szLen = szCode.Length;
if(szLen <=12 || szLen >= 17)
return true;
for ( int i=0; i<szLen; i++)
{
if ( i%2 == 0 )
{
nNum2 += int.Parse(szCode[i].ToString()); //偶数
}
else
{
nNum1 += int.Parse(szCode[i].ToString()); //奇数
}
}
nNum3 = (Operator.DiscountLabelBarLength % 2 ==0) ? nNum1 + nNum2 * 3 : nNum1 * 3 + nNum2 ;
int t ;
if(nNum3%10>0) t= 10- (nNum3 % 10) ;
else t=0;
szCode+=t;
return true
}
如果再精简些应该直接用数组类型来实现,这样就不用使用string了.代码中的细节部分不是效率最高写法.盖于本人学历尚浅,对char等类型掌握的还不熟.所以就用一堆的转型来解决了.
代码用c#写成,相信学java人士也能看懂吧 呵呵
前几天上传得代码有问题居然没人发现,汗,还是自己改过来吧...现在已经改完了,不知道会不会有其他得问题了,欢迎批评啊
EAN校验码的计算方法相关推荐
- 18位身份证号码最后一位校验码的计算方法
介绍18位身份证号码最后一位校验码的计算方法 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. ...
- 网络技术之数据包校验码的计算方法
作者:i_dovelemon 日期:2016 / 04 / 05 来源:CSDN 主题:大小端,ICMP,校验码 引言 最近在研究TCP/IP协议相关的内容,试着使用Wireshark ...
- 一文看懂海明校验码及其计算方法(详细总结)
网上看了好几篇文章后终于算是捋明白了,但是看到的这些资源要么说得云里雾里,要么干脆说得有问题(然后还被点了好多赞...),无论如何这些都容易误导小白.作为C站多年老潜水员,我还是把海明校验码的要点总结 ...
- 条形码ENA-13校验码的计算方法
代码位置序号 代码位置序号是指包括校验码在内的,由右至左的顺序号(校验码的代码位置序号为1). 计算步骤 校验码的计算步骤如下: a.从代码位置序号2开始,所有偶数位的数字代码求和. b.将步骤a的和 ...
- mysql身份证校验码_用sql实现18位身份证校验代码分享 身份证校验位计算
身份证校验码的计算方法 1.将前面的身份证号码17位数分别乘以不同的系数.第i位对应的数为[2^(18-i)]mod11.从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 ...
- 对身份证号码的处理,所在地,生日,派出所代码,男or女,校验码
一.身份证编码 (1)前六位表示编码对象常住户口所在县(市.镇.区)的行政区划代码.1-2位省.自治区.直辖市代码: 3-4位地级市.盟.自治州代码: 5-6位县.县级市.区代码. (2)第七位到第十 ...
- 居民身份证号码的奥秘及身份证第18位(校验码)的计算方法
2019独角兽企业重金招聘Python工程师标准>>> 居民身份证是国家法定的证明公民个人身份的证件.为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要 ...
- 常用crc查表法_CRC校验码简介及CRC16的计算方法
点击上方"嵌入式从0到1",选择"置顶/星标公众号" 干货福利,第一时间送达! 什么是CRC校验? CRC即循环冗余校验码(Cyclic Redundancy ...
- CRC校验码简介及CRC16的计算方法
[导读]什么是CRC校验?CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.奇偶校验虽然简 ...
- EAN码校验位的计算方法
/** EAN码校验位的计算方法 从代码位置序号2开始,所有偶数位的数字代码求和为a. 将上步中的a乘以3为a. 从代码位置序号3开始,所有奇数位的数字代码求和为b. 将 ...
最新文章
- hdu-1003 or 最大子序列和(四种解题方法)
- Javascript prototype理解
- java多线程的同步
- 什么是Terraform?
- 存储过程,触发器,函数
- 解决jmeter响应中文乱码及解码
- OpenGL编程指南14:混合半透明Blend
- 如何在Windows中快速轻松地将文件发送到SkyDrive
- android怎么垂直居中且靠右,placeholder 靠右垂直居中/位置兼容
- Python 如何调用 Java
- NSNumber, NSValue的使用
- 国内最强Web3D软件WebMax正式版发布
- 从零实现一个3D建模软件
- EXCEL用今天日期减去之前的日期得到结果
- 【经验贴】小汽车科目二科目三 经验
- Java中构造方法的案例及常用类int lenght类的使用方法举例,new实例化对象方法,静态方法实例方法的举例
- CST视图view的操作
- YT8511H的原理图设计
- spark官网配套的代码数据在哪儿
- MySQL管理常用工具介绍
热门文章
- 别再让「聪明」害了00后!
- openairinterface5g基站老版eNB部署
- 厂级监控系统镜像服务器,厂级监控信息系统(SIS).PDF
- 使用IDEA工具远程调试SpringBoot应用
- Supplier和Vendor的区别
- 解决ImportError: cannot import name ‘bbox_overlaps_cython‘
- iTunes12.7 如何自定义手机铃声
- 修改远程端口后登录不上的解决办法[作者:Jackie]
- html挪车隐藏手机,警告,千万不能留挪车电话!!!教你两招,这样做就可以挪车,避免麻烦...
- ① 如何优雅快乐打出漂亮LaTeX数学公式——小乐数学zzllrr Mather公式编辑器教程