双模校验算法
来源:互联网 发布:手机知乎怎么看提问者 编辑:程序博客网 时间:2024/06/05 14:10
今天写程序遇到了算法,刚开始不太明白,后来去网上查,能查到的资料也很少,大部分都是通过写的一个shell实现的,并且都如出一辙,可能都是对着抄袭的吧,
说明:以下资料部分是从网上搜索得到,只是引用,不做商业用途,如有侵权,请联系本人。
1.首先介绍模10、11双模算法。双模算法是国标的其中一个,即GBT 17710,可以防止在抄录和键入字符串时产生的错误。本标准规定了一组校验字符系统,它可以防止在复制或者键入数据时产生错误,包括单一字符录入错误(比如12345错录为02345)、所有的或者几乎所有的单一字符兑换位置错误(12345错录为12354)、所有或者几乎所有的循环移位错误,大部分的双替换错误(12345错录为22356),大部分的其它错误等
2.算法公式及解释如下(网上找的,是对的):
3.附上C源码:
int Mode(char * str){int m=10;int number=0;int n=0;int p=m;int i=0;int j=0;j = strlen(str);for(i=0;i<j;i++){ number=(int)(str[i]-48); p=((n=(p+number)%m)?n:m)*2%(m+1); printf("good[%d]number[%d]\r\n",i,number);}if(p<2){p=1-p;}else{p=11-p;}return p;/*返回一个校验数字*/}
PS:这个源码是根据那个shell改造的,字符串全为数字时适用,如有同学有时间可以继续改造下,没时间了,要下班了,呵呵。
- 双模校验算法
- 身份证校验算法
- php身份证号码校验算法
- 2410触摸屏校验算法
- Rsync滚动校验算法
- CRC校验算法
- CRC校验算法
- 和校验算法
- 偶校验算法
- CRC校验的算法
- 校验和算法简介
- CRC校验算法原理
- 【转】CRC校验算法
- CRC校验算法 转
- CRC16校验算法实现
- 校验和算法
- Rsync滚动校验算法
- Rsync滚动校验算法
- 和屌丝一起学cocos2dx-屏幕设置
- chrome的post插件
- linux下安装和运行wireshark
- struts2的s:iterator 标签 详解
- 配置JDK和Tomcat环境变量
- 双模校验算法
- 大家都是怎么学习图像算法的呀?
- java_web之ServletContext应用
- c++中冒号(:)和双冒号(::)的用法
- linux之select/poll
- Button居中|水平居中|垂直居中(总结)
- HDU 1124
- 关于Webservice Web引用报错:缺少 soap:operation 绑定的解决
- Struts2 java 对象 导出Excel