当前位置:首页 » 操作系统 » 检验位算法

检验位算法

发布时间: 2023-08-26 12:06:19

A. 身份证的最后一位的效验码的公式是什么(简单一点的公式)

公民身份号码是由17位数字码和1位校验码组成。排列顺序从左至右分别为:6位地址码,8位出生日期码,3位顺序码和1位校验码。
地址码(身份证地址码对照表见下面附录)和出生日期码很好理解,顺序码表示在同一地址码所标识的区域范围内,对同年同月同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
身份证最后一位校验码算法如下:
1.
将身份证号码前17位数分别乘以不同的系数,从第1位到第17位的系数分别为:7
9
10
5
8
4
2
1
6
3
7
9
10
5
8
4
2
2.
将得到的17个乘积相加。
3.
将相加后的和除以11并得到余数。
4.
余数可能为0
1
2
3
4
5
6
7
8
9
10这些个数字,其对应的身份证最后一位校验码为1
0
X
9
8
7
6
5
4
3
2。
校验码计算公式:
公式①中:
i
表示号码字符从由至左包括校验码在内的位置序号;
Ai
表示第i位置上的号码字符值;
Wi
示第i位置上的加权因数。
加权因数的集合为{7,
9,
10,
5,
8,
4,
2,
1,
6,
3,
7,
9,
10,
5,
8,
4,
2,
1}
v={1,
0,
X,
9,
8,
7,
6,
5,
4,
3,
2}
最后一位的校验位就是集合v中的第m个元素的值。
下面举例算一个:
随便一个号码,如济南市市辖区的某位出生于1901年02月03日的男性公民身份号码前11位(也就是本体码)为37010119010203997,首先按照公式⑴计算:
然后根据计算的结果,从集合v中查出相应的校验码,其中X表示10:
根据集合v,查出计算结果为9的校验码3为所以该人员的公民身份号码应该为
370101190102039973。
说下余数的算法。
一、两个异号整数求余
1.函数值符号规律(余数的符号)
mod(负,正)=正
mod(正,负)=负
结论:两个整数求余时,其值的符号为除数的符号。
2.取值规律
先将两个整数看作是正数,再作除法运算
①能整除时,其值为0
②不能整除时,其值=除数×(整商+1)-被除数
例:mod(36,-10)=-4
即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被除数之差为(40-36=4);取除数的符号。所以值为-4。
二、两个小数求余
取值规律:
被除数-(整商×除数)之后在第一位小数位进行四舍五入。
例:mod(9,1.2)=1
即:9除1.2其整商为7;7与除数1.2之积为8.4;8.4四舍五入之后为8;被除数9与8之差为1。故结果为1。
例:mod(9,2.2)=0
即:9除2.2其整商为4;4与除数2.2这积为8.8;8.8四舍五入之后
为9;被除数9与之差为0,故结果为0.

B. 身份证号最后一位数字称之为校验码,校验码的计算方式是怎样的

按照相关规定,身份号是由17个数字和1个数字校验码组成的。而最后一位校验码,就是检查身份证是否正确的主要依据。它的计算方法,主要是由前17位乘以不同的系数,最后的总和除以11。在这种情况下,得到的余数,就是校验码。

那么我们在反推的时候,就可以用身份证号乘于系数,当最后得出的余数和末尾校验码不同时,就代表这个身份证,是一个假的身份证,不符合我们国家的标准。另外,余数对应的数字不同,并不是说余数就一定是最后一位身份证号码。

3、为什么除以11

看到整个计算过程,我们会发现,想要得出校验码,并非一件易事。不过在计算中,有人可能会提出疑问,最终的除以为什么是取11,而不是其他数字。

其实这个问题的答案很简单,结合校验码的功能,11是最容易检测出问题的存在。同时,它可以覆盖到大多数身份证,方便进行校验。毕竟一个国家人口众多,校验码要做到尽可能覆盖所有人。

C. 如何计算CRC校验位

在CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算。CRC计算方法是:1、 加载一值为0XFFFF的16位寄存器,此寄存器为CRC寄存器。2、 把第一个8位二进制数据(即通讯信息帧的第一个字节)与16位的CRC寄存器的相异或,异或的结果仍存放于该CRC寄存器中。3、 把CRC寄存器的内容右移一位,用0填补最高位,并检测移出位是0还是1。4、 如果移出位为零,则重复第三步(再次右移一位);如果移出位为1,CRC寄存器与0XA001进行异或。5、 重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理。6、 重复步骤2和5,进行通讯信息帧下一个字节的处理。7、 将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低字节进行交换8、 最后得到的CRC寄存器内容即为:CRC校验码。

热点内容
c语言的认识 发布:2025-02-01 11:58:03 浏览:520
svn连接服务器地址 发布:2025-02-01 11:51:31 浏览:416
对源程序为什么要编译 发布:2025-02-01 11:47:46 浏览:218
sql表添加记录 发布:2025-02-01 11:22:08 浏览:864
word编辑加密 发布:2025-02-01 11:18:53 浏览:571
php变量文本 发布:2025-02-01 11:10:46 浏览:426
音悦台上传mv 发布:2025-02-01 11:05:02 浏览:516
微信如何设置访问限制 发布:2025-02-01 10:43:06 浏览:335
b站缓存视频下架还有吗 发布:2025-02-01 10:37:52 浏览:940
e卡通初始密码是多少 发布:2025-02-01 10:31:55 浏览:127