首页 百科知识 代码校验的目的和意义

代码校验的目的和意义

时间:2022-10-24 百科知识 版权反馈
【摘要】:校验码系统是产生校验码并校验包括校验码在内的字符串的一套规则。设有校验码的代码由本体码与校验码两部分组成,本体码是表示编码对象的号码,校验码附加在本体码后面,是用来校验本体码在输入过程中准确性的号码。每一个本体码只能有一个校验码,校验码是通过规定的数学关系计算得到的。

5.5.1 代码校验的目的和意义

代码是数据的重要组成部分,它的正确性将直接影响系统的质量。特别是人们重复抄写代码和通过人工输入计算机,发生错误的可能性更大。因此,为了验证输入代码的正确性,要在代码本体的基础上再加上校验码(checker characters),使它成为代码的组成部分。

校验码是指可通过数学关系来验证代码正确性的附加字符。校验码系统(checker characters system)是产生校验码并校验包括校验码在内的字符串的一套规则。

设有校验码的代码由本体码与校验码两部分组成(如组织机构代码),本体码是表示编码对象的号码,校验码附加在本体码后面,是用来校验本体码在输入过程中准确性的号码。每一个本体码只能有一个校验码,校验码是通过规定的数学关系计算得到的。

校验码的校验原理是:系统内部预先设置根据校验方法所导出的校验公式编制成的校验程序,当带有校验码的代码输入系统时,系统利用校验程序对输入的本体码进行运算,得出校验结果后,再将校验结果与输入代码的校验码进行对比来检测输入的正确与否。如果两者一致,则表明代码输入正确;如果不一致,则表明代码输入有误,要求重新输入代码。

校验位能发现以下错误:

(1)单替代错误:一个单一字符被另一个单一字符替换,如1写成7。

(2)单一对换错误:单个字符的对换,相邻的两个字符或相隔一个字符的两个字符之间的互换错误,如1234写成1324。

(3)双替代错误:在同一个编码表达式中,两个分隔的单一字符的替换错误,如26913写成21963。

(4)位移错误:编码表达式整体向左或向右的位移。

(5)随机错误:包括以上两种或三种综合性错误或其他错误。

(6)其他错误。

一般地,校验码的生成过程如下:

(1)对代码本体的每一位加权求和

设代码本体为C1C2…Cn,权因子为P1,P2,…,Pn,加权求和:

S=∑CiPi,其中,权因子可取自然数1,2,3,…,或几何级数2,4,8,16,32,…,或质数2,3,5,7,11,…,等。

(2)以模除和得余数

R=S mod(M)

其中,R表示余数;M表示模数,可取M=10,11等。(3)模减去余数得校验位

Cn+1=M-R

例如,代码本体为123456,权因子为1,7,3,1,7,3,模为10,则

S=1×1+2×7+3×3+4×1+5×7+6×3=81

R=81 mod(10)=1

校验位为10-1=9

所以自检码为1234569,其中9为校验位。

当自检码C1C2…CnCn+1(其中,Cn+1为校验位)输入计算机后,对C1C2…Cn分别乘以原来的权因子,Cn+1乘以1,所得的和被模除,若余数为零,则该代码一般说来是正确的,否则输入有错。

在这种方法中,权和模可有多种取法,表5-9列出了一些权和模的检错率。

表5-9 不同权和模的检错率

img55

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈