将15位一代身份证号码转换成18位(C++类和对象实现)

背景:1985年起我国实行居民身份证制度。当时签发的身份证号码是15位的,第7、8位为出生年份的后两位(如1980年出生的人,7、8位就是80)。由于2000年的到来,1999年起签发的身份证调整为18位。具体调整规则是:在第7-10位改为完整的出生年份,并将原15位身份证第9位之后的数字依次向后平移两位,这样,就得到一串17位的数字(例如:340524800101001变为34052419800101001)。18位身份证号中,新增最后一位校验码,校验码的具体计算规则如下图:

阅读全文