计算公民身份号码校验码(C++)
输入
公民身份号码的本体码(master number),身份证前17位数字,6位数字地址码 + 8位数字出生日期码 + 3位数字顺序码
输出
公民身份号码的校验码(check number),身份证第18位(最后一位)数字,用来验证本体码的录入或转录过程准确性的号码,1位数字校验码
C++实现代码
#include <iostream>int main()
{uint64_t inID = 0;std::cout << "Enter the master number of the citizen ID: ";std::cin >> inID;if (11000000000101000 <= inID && inID <= 82999999991231999) {const int w[17] = { 2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9, 7 };int s = 0;uint64_t id = inID;for (int i = 0; i < 17; ++i) {s += (id % 10) * w[i];id /= 10;}const char cn[11] = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };std::cout << std::endl << "The citizen ID check number is: " << cn[s % 11] << std::endl;return 0;}std::cerr << std::endl<< "The master number is incorrect." << std::endl<< "It must have 17 digits (address code + YYYYMMDD + seq, 6+8+3)." << std::endl;return 1;
}
参考
- GB 11643-1999 公民身份号码
- GB/T 2260-2007 中华人民共和国行政区划代码
计算公民身份号码校验码(C++)相关推荐
- 公民身份号码 校验码 检证程序
公民身份号码 校验码 检证程序 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...
- 公民身份号码校验码算法(C#版)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 公民身份号码 校验码 检证程序
公民身份号码 校验码 检证程序 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...
- 【商业信息】GB 11643—1999 公民身份号码
前 言 本标准是GB 11643-1989<社会保障号码>的修订版.为了使标准的内容适应我国国民经济和社会发展的需要,对原标准内容作了以下改动: 原标准名称"社会保障号 ...
- oracle验证公民身份号码
首先看一下<公民身份号码>中做了明确的规定: 18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999<公民身份号码>中做了明确的规定. GB11 ...
- 中国公民身份证号码校验
中国公民身份证号码校验 上图可看出18位位身份证每一部分表示的意义. 图为随机生成身份号码,四川省 乐山市 井研县 1981年12月28日生 这里主要讲解最后一位校验码的验证 校验码主要是由前面17位 ...
- 将一个字符串计算出CRC16/XMODEM校验码(4位)
将一个字符串计算出CRC16/XMODEM校验码(4位) unsigned short CRC16_XMODEM(unsigned char *puchMsg, unsigned int usData ...
- 公民身份号码是一种由18位数字组成的特征组合码,其排列顺序从左至右依次为:6位数字地址码、8位数字出生日期码,3位数字顺序码和1位数字校验码(校验码若为10则用字符X来表示)。编写程序从键盘输入一个
#include <stdio.h> int main() {int add,year,month,day;/*定义地址码,年月日*/int shunxuma;/*定义顺序码*/char ...
- 居民身份证号码的奥秘及身份证第18位(校验码)的计算方法
2019独角兽企业重金招聘Python工程师标准>>> 居民身份证是国家法定的证明公民个人身份的证件.为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要 ...
- Python计算身份证第18位(校验码)来判断身份证是否输入正确
Python计算身份证第18位(校验码)来判断身份证是否输入正确 前言 身份证编码规则如下:根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由 ...
最新文章
- 马腾宇:AI 学界一颗冉冉升起的新星
- 艾伟也谈项目管理,创业公司技术选型参考
- Summary of GATT Profile Attribute Types
- iOS - NSUserDefaults 实现数据的持久化保存
- “Survey of machine learning techniques for malware analysis ”
- RabbitMQ封装实战
- About “PostMessage” SendMessage
- 【01】《正则表达式必知必会》(已看)(仅存放)
- 大厂不一定要进,算法必须要学!精选算法文章89篇
- unity3d进行脚本资源打包加载
- C++11并发之std::mutex
- 九九乘法表c语言带表头,C语言-九九乘法表
- GIS数据处理-OSGB转换3dTiles
- 静态HTML+CSS 中国高等教育学生信息网(学信网)网站
- 小米11刷root记录
- Poco库使用:文件压缩和解压缩
- C++笔记-1-c与c++基础区别
- SAP各模块优缺点和发展简析
- 李白 宣州谢朓楼饯别校书叔云
- 微信扫描二维码无法下载文件的解决办法