ISO 7064:1983.MOD11-2校验码计算法(身份证18位效验码计算)
/*
使用【ISO 7064:1983.MOD 11-2】计算【身份证效验码】
将前面的身份证号码17位数分别乘以不同的系数。
从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。
将这17位数字和系数相乘的结果相加
用加出来和除以11,看余数是多少?
余数只能为: 0-1-2-3-4-5-6-7-8-9-10
余数所对应的效验码:1-0-X -9-8-7-6-5-4-3-2
【列如】
余数为7,则对应的效验码为5
【例子】
系数x身份证前17位(单个分开相乘)的和=S
S/11 = S除于11=T...3 (和除于11所得的余数)
3==9(余数对于的效验码)
【公式】
某男性的身份证号码为【53010219200508011?】仅有前17位数字,则不知道最后一位效验码可以这样公式解答:
身份证:5 3 0 1 0 2 1 9 2 0 0 5 0 8 0 1 1||相乘||
系数: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2⇓ ⇓ ⇓ ⇓ ⇓ ⇓ ⇓ ⇓ ⇓ ⇓ ⇓ ⇓ ⇓ ⇓ ⇓ ⇓ ⇓
积: 35 27 0 5 0 8 2 9 12 0 0 45 0 40 0 4 2
把积数相加所得:189
得出的结果除于11所得:17....2(得17余2)
余数: 0-1-【2】-3-4-5-6-7-8-9-10
余数所对应的效验码:1-0-【X】-9-8-7-6-5-4-3- 2
余数2所对应的效验码为:X
身份证则为【53010219200508011X】可前往【http://ad.0453.com/adxx/shenfenzheng/index.asp】效验身份证是否合法!!身份证号码由18位数字组成:前6位为行政区划分代码,第7位至14位为出生日期码,第15位至17位为顺序码,第18位为校验码。
地址码包含(省、市、区)也可通过省、市、区查出地址码!按GB/T2260的规定执行
顺序码(男为奇数、女为偶数)前1、2位数字表示:所在省份的代码;
第3、4位数字表示:所在城市的代码;
第5、6位数字表示:所在区县的代码;
第7~14位数字表示:出生年、月、日;
第15、16位数字表示:所在地的派出所的代码;
第17位数字表示性别:奇数表示男性,偶数表示女性;
第18位数字是校检码:用来检验身份证的正确性。
*/#include <stdio.h>
#include <string.h>int main(void)
{char InNum[18];char CheckNum[11] = {'1', '0', 'X' , '9', '8', '7', '6', '5', '4', '3', '2'};int i = 0;int Sum = 0;memset(InNum, 0, 18);printf("\n请输入身份证前17位数字,按回车键结束:\n\t");fflush(stdin); scanf("%s",InNum);printf("\n输入的前17位数字为: \n\t");for(i = 0;i < 17;i++){// 将ASCII码值 转化为数字InNum[i] -= 0x30;printf("%d",InNum[i]);}Sum = InNum[0]*7 + InNum[1]*9 + InNum[2]*10 + InNum[3]*5 + InNum[4]*8 +InNum[5]*4 + InNum[6]*2 + InNum[7]*1 + InNum[8]*6+ InNum[9]*3 + InNum[10]*7 + InNum[11]*9 + InNum[12]*10 + InNum[13]*5 + InNum[14]*8 + InNum[15]*4 + InNum[16]*2;printf("\n生成的身份证号码为: \n\t");for(i = 0;i < 17;i++)printf("%d",InNum[i]);printf("%c", CheckNum[Sum % 11]);printf("\nOK\n");return 0;
}
ISO 7064:1983.MOD11-2校验码计算法(身份证18位效验码计算)相关推荐
- 身份证号码含义及最后一位校验算法(ISO 7064:1983.MOD 11-2)
身份证的各位数字代表的含义 ISO 7064:1983.MOD11-2校验码计算法 : (身份证校验码-第18位) 校验码计算(Python 代码) 身份证的各位数字代表的含义 1.前1.2位数字表示 ...
- 身份证最后一位校验算法-(ISO 7064:1983.MOD 11-2)
根据<中华人民共和国国家标准GB 11643-1999>中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码, ...
- 身份证最后一位校验算法(ISO 7064:1983.MOD 11-2)
很多游戏账号申请,或者某些网站注册时需要填身份证号,当输入错误的身份证号时会提示出错,感觉好像真能识别身份证信息一样,其实不然. 实质上由于其没有权限接入公安系统,它只能根据最后一位校验位来判断该身份 ...
- JAVA代码实现身份证18位校验码合法性校验
身份证第18位(校验码)的计算方法 1.将前面的身份证号码17位数分别乘以不同的系数.从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2. 2.将这 ...
- vue中如何进行身份证合法性校验(身份证18位,包含最后一位数字/字母)
文章目录 前言 正文 1. 首先,根据实际情况,目前我们使用的身份证由18位构成,包括数字和字母X.那么,在input输入框中就需要限制用户输入的数据类型. 2.其次,查看Element ui 组件库 ...
- 18位身份证号藏了什么玄机?用js教你校验身份证
大家好,想必各位程序猿已经有所发现,而相应地,在日常的开发任务需求了很多跟涉及到用户的都几乎需要用到身份证的校验,因此不留君特意整理出一份身份证号的组成原理以及 校验函数(js版) [身份证号码的规则 ...
- Java身份证号码严格验证(第18位校验码算法实现)
/*** 身份证号码的格式:610821-20061222-612-X 由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,* 第18位为校验码.检验码分别是0-10共 ...
- 7位格雷码计算风向_基于单片机的风速风向检测系统设计
摘 要:介绍了一种风速风向传感器原理,选用LPC921单片机设计了数据采集和数据传输的检测系统,给出了系统硬件电路图和软件流程图,分析了硬件设计和软件编程中的一些问题. 1 引言 风速风向测量是气象监 ...
- js中15位及18位身份证号码的校验
15位身份证结构: 地区代码(6位),年(2位)月(2位)日(2位),顺序码(3位,最后1位偶数代表女,奇数代表男) 18位身份证结构: 地区代码(6位),年(4位)月(2位)日(2位),顺序码(3位 ...
- 身份证号码js校验(15位18位)
idcard: {// 验证身份证(15位18位)validator: function (value) {// 1.传入15位或者18位身份证号码,18位号码末位可以为数字或Xvar idCard ...
最新文章
- Python使用matplotlib绘制分组对比柱状图(bar plot)可视化时汉语(中文)标签显示成了框框□□、什么情况、我们有解决方案
- Windows 2003不同域之间迁移密码方法笔记截图
- java基础深入_java编程基础之方法深入
- Exceptionless(二) - 使用进阶
- AtCoder Beginner Contest 175总结
- @value 注入静态属性_TP6依赖注入是如何实现的
- 为什么C语言仍然占据统治地位?
- UML学习笔记(六)【状态图】
- iptables01
- Bootstrap 的辅助类
- Linux下Redis的安装和部署
- STM32F103通用定时器使用
- 《Cocos2D-x权威指南》——3.7 容器类
- Hide()方法不生效
- 最新csdn有奖任务答案
- oracle,pdb模式,数据库重启
- INT 10H 中断简介
- VOIP技术连载之一 VOIP简介
- Android 4.4 kitkat以上及以下根据uri获取路径的方法
- pc端双六边形重叠效果(带边框的六边形)
热门文章
- PMP考试通关宝典-敏捷专题
- 最精确的噪音测试软件,关于噪音测试App的选择与使用
- html运行页面一直处在加载状态的解决
- 卸载IE11并恢复到IE9
- axis wsdl2java_AXIS1.4 客户端 wsdl2java 使用方法
- 影牛社区短视频影视APP源码
- 视频教程-通俗易懂的RPC框架Dubbo视频教程-Java
- PDMS Pipeline Tool 教程(一):安装说明
- 黑苹果怎么进recovery_黑苹果怎么自定义Clover GUI启动选项 黑苹果修复Clover GUI启动选项教程...
- Zalo营销大师2019版