• ISO 7064:1983.MOD11-2校验码计算法 : (身份证校验码-18位)


    /*
    假设某一17位数字是 
    17位数字       1     2     3     4     5     6     7     8     9     0     1     2     3     4     5     6     7 
    加权因子       7     9     10    5     8     4     2     1     6     3     7     9     10    5     8     4     2 
    计算17位数字各位数字与对应的加权因子的乘积的和S:1×7+2×9+3×10+4×5+5×8+6×4+7×2+8×1+9×6+0×3+1×7+2×9+3×10+4×5+5×8+6×4+7×2=368; 
    计算S÷11的余数T:368 mod 11=5; 
    ((  余数0-10对应校验码为[1, 0, X , 9, 8, 7, 6, 5, 4, 3, 2],算法如下 )) 
    计算(12-T)÷11的余数R,如果R=10,校验码为罗马数字 10(Ⅹ)“X”;如果R≠10,校验码为数字“R”:(12-5)mod 11=7。 
    该17位数字的校验码就是7,聚合在一为123456789012345677。
    */
    #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("
    请输入身份证前17位数字,按回车键结束:
    	");
        fflush(stdin);    
        scanf("%s",InNum);
        
        printf("
    输入的前17位数字为: 
    	");
        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("
    生成的身份证号码为: 
    	");
        for(i = 0;i < 17;i++)
    	printf("%d",InNum[i]);
        printf("%c", CheckNum[Sum % 11]);
        printf("
    OK
    ");
        return 0;
    }
    



    参考 : http://blog.csdn.net/n289950578/article/details/22287389


    特别注意:

               ”Ⅹ“   是 罗马数字 10, 不是 英文大写字母 ”X“, 此处为了编码方便,使用了英文字母 ‘X’ 代替;



    罗马数字1到10的写法:I ,II ,III, IV ,V ,VI, VII ,VIII ,IX, X


    罗马数字输入参考》》》  罗马数字1到10怎么打_百度经验



  • 相关阅读:
    Jmeter错误解析-明明写对了,确报404,原因是接口里多了个空格
    Jmeter+ant+svn+jenkins一键部署(四)--机器人发报告
    Django
    Linux下压缩解压文件夹+下载+删除命令
    VUE-安装
    Hadoop核心-MapReduce
    Pulsar 社区周报|2021-06-14~2021-06-20
    ApacheCon Asia 2021: Apache Pulsar 技术议题一览
    Pulsar 社区周报|2021-06-07~2021-06-13
    直播回顾|TGIP-CN 032:Apache Pulsar 快速上手实战
  • 原文地址:https://www.cnblogs.com/roger0212/p/4436644.html
Copyright © 2020-2023  润新知