【叶子函数分享三十八】得到条形码的校验位函数
来源:互联网 发布:模拟dj打碟机软件 编辑:程序博客网 时间:2024/04/27 21:37
一、校验码说明:
校验码的计算方法
1. 代码位置序号
代码位置序号是指包括校验码在内的,由右至左的顺序号(校验码的代码位置序号为1)。
2. 计算步骤
校验码的计算步骤如下:
a.从代码位置序号2开始,所有偶数位的数字代码求和。
b.将步骤a的和乘以3。
c.从代码位置序号3开始,所有奇数位的数字代码求和。
d.将步骤b与步骤c的结果相加。
e.用大于或等于步骤d所得结果且为10最小整数倍的数减去步骤d所得结果,其差即为所求校验码的值。
示例:代码690123456789X1校验码的计算见表B.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 校验码的计算方法
二、SQL实现:
go -- ============================================= -- Author: <Maco Wang> -- Create date: <2009-10-27 16:01> -- Description: <计算条形码的校验码> -- ============================================= create function [dbo].[Get_CheckCode] ( @ActiveCode varchar(12) ) returns varchar(13) as begin declare @codelength int set @codelength= len(@ActiveCode) declare @curnum int;set @curnum=0 declare @temp1 int;set @temp1=0 declare @temp2 int;set @temp2=0 declare @locatnum int;set @locatnum=0 declare @code13 int declare @i int;set @i=0 while(@i<@codelength) begin set @locatnum=@i+2; set @curnum=floor(substring(@ActiveCode,@codelength-@i,1)) if(@locatnum%2=0) set @temp1=@temp1+@curnum else set @temp2=@temp2+@curnum set @i=@i+1 end set @code13=10-(@temp1*3+@temp2)%10; if(@code13=10) set @code13=0 return @ActiveCode+cast(@code13 as varchar(1)); end --测试示例 select dbo.[Get_CheckCode]('827123121212') --运行结果 /* 8271231212124 */
- 【叶子函数分享三十八】得到条形码的校验位函数
- 得到条形码的校验位函数
- 【叶子函数分享三十九】根据年月得到当月的天数
- 【叶子函数分享十二】根据身份证得到生日函数
- 【叶子函数分享四十二】得到汉字笔画函数
- 【叶子函数分享十二】根据身份证得到生日函数
- 【叶子函数分享二十七】根据日期得到星期的函数
- 【叶子函数分享二十七】根据日期得到星期的函数
- 【叶子函数分享二十七】根据日期得到星期的函数
- 【叶子函数分享四十八】根据年得到所有星期日的日期
- 【叶子函数分享四十八】根据年得到所有星期日的日期
- 【叶子函数分享十一】取汉字首字母的两个函数
- 【叶子函数分享四十六】获取元素个数的函数
- 【叶子函数分享十一】取汉字首字母的两个函数
- 【叶子函数分享五十七】计算个人所得税函数
- 【叶子函数分享三十七】求字符串中汉字的个数
- 【叶子函数分享三十二】求某段时间内星期几的天数
- 【叶子函数分享五十三】输出指定格式的数据列
- vbs脚本大全,配有实例 DOS命令,批处理 脚本 代码
- 手机浏览器技术有待提高
- bufferedImage操作及输出图像
- ASP获取客户端硬件信息(CPU、硬盘、主板、mac地址等)
- 设计模式之蜡笔和毛笔
- 【叶子函数分享三十八】得到条形码的校验位函数
- Flex 3快速入门: 处理数据 访问 XML 数据
- DB2 在线分析处理(OLAP函数的使用)
- asp.net获取客户端的MAC地址〔只适用于局域网〕
- C/C++基本编程技能【转】
- Velocity语法
- 分页标签遭遇 "java.lang.ArithmeticException: / by zero"
- web 安全认证-角色 权限 模块分配
- UML类图符号理解