输入

公民身份号码的本体码(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++)相关推荐

  1. 公民身份号码 校验码 检证程序

    公民身份号码  校验码 检证程序 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...

  2. 公民身份号码校验码算法(C#版)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. 公民身份号码 校验码 检证程序

    公民身份号码  校验码 检证程序 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...

  4. 【商业信息】GB 11643—1999 公民身份号码

    前      言 本标准是GB 11643-1989<社会保障号码>的修订版.为了使标准的内容适应我国国民经济和社会发展的需要,对原标准内容作了以下改动: 原标准名称"社会保障号 ...

  5. oracle验证公民身份号码

    首先看一下<公民身份号码>中做了明确的规定: 18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999<公民身份号码>中做了明确的规定. GB11 ...

  6. 中国公民身份证号码校验

    中国公民身份证号码校验 上图可看出18位位身份证每一部分表示的意义. 图为随机生成身份号码,四川省 乐山市 井研县 1981年12月28日生 这里主要讲解最后一位校验码的验证 校验码主要是由前面17位 ...

  7. 将一个字符串计算出CRC16/XMODEM校验码(4位)

    将一个字符串计算出CRC16/XMODEM校验码(4位) unsigned short CRC16_XMODEM(unsigned char *puchMsg, unsigned int usData ...

  8. 公民身份号码是一种由18位数字组成的特征组合码,其排列顺序从左至右依次为:6位数字地址码、8位数字出生日期码,3位数字顺序码和1位数字校验码(校验码若为10则用字符X来表示)。编写程序从键盘输入一个

    #include <stdio.h> int main() {int add,year,month,day;/*定义地址码,年月日*/int shunxuma;/*定义顺序码*/char ...

  9. 居民身份证号码的奥秘及身份证第18位(校验码)的计算方法

    2019独角兽企业重金招聘Python工程师标准>>> 居民身份证是国家法定的证明公民个人身份的证件.为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要 ...

  10. Python计算身份证第18位(校验码)来判断身份证是否输入正确

    Python计算身份证第18位(校验码)来判断身份证是否输入正确 前言 身份证编码规则如下:根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由 ...

最新文章

  1. 马腾宇:AI 学界一颗冉冉升起的新星
  2. 艾伟也谈项目管理,创业公司技术选型参考
  3. Summary of GATT Profile Attribute Types
  4. iOS - NSUserDefaults 实现数据的持久化保存
  5. “Survey of machine learning techniques for malware analysis ”
  6. RabbitMQ封装实战
  7. About “PostMessage” SendMessage
  8. 【01】《正则表达式必知必会》(已看)(仅存放)
  9. 大厂不一定要进,算法必须要学!精选算法文章89篇
  10. unity3d进行脚本资源打包加载
  11. C++11并发之std::mutex
  12. 九九乘法表c语言带表头,C语言-九九乘法表
  13. GIS数据处理-OSGB转换3dTiles
  14. 静态HTML+CSS 中国高等教育学生信息网(学信网)网站
  15. 小米11刷root记录
  16. Poco库使用:文件压缩和解压缩
  17. C++笔记-1-c与c++基础区别
  18. SAP各模块优缺点和发展简析
  19. 李白 宣州谢朓楼饯别校书叔云
  20. 微信扫描二维码无法下载文件的解决办法

热门文章

  1. centos7编写shell批处理文件和执行方法
  2. 通过Ubuntu16.04编译Android下的osip动态库
  3. 什么是视频结构化?视频结构化有什么作用
  4. python实现火车票查询_python实现12306火车票查询的实例全过程
  5. 运筹帷幄——我国古代的高超算术
  6. 华三交换机查看光模块参数的命令
  7. MIDIPLUS/迷笛studio m pro 2 valve声卡安装调试教程
  8. 中小型企业应该选择什么样的OA系统?
  9. [转]初中英语书中的LiLei和Hanmeimei应该结婚了吧!
  10. 马蜂窝都斌出席广西自驾游大会:大数据将成自驾市场增长新引擎