计算机校验码的计算方法主要取决于所使用的校验码类型。以下是一些常见校验码的计算方法:
奇偶校验码
奇校验:在原始信息位后面补一位校验位,使得编码中1的个数为奇数。
偶校验:在原始信息位后面补一位校验位,使得编码中1的个数为偶数。
计算步骤:
在原始信息位后面补r个0,r为生成多项式的阶。
由多项式得到除数,多项式中X的幂指数存在的位置为1,不存在的位置为0。
将被除数和除数进行模2除法运算,得余数即CRC校验码。
CRC校验码
计算步骤:
在原始信息位后面补r个0,r为生成多项式的阶。
由多项式得到除数,多项式中X的幂指数存在的位置为1,不存在的位置为0。
将被除数和除数进行模2除法运算,得余数即CRC校验码。
示例:
原始信息串: 10110
CRC生成多项式: G(x)=X^4+X+1
被除数补0-->101100000
从多项式提取除数: G(x)=X^4+X+1 --> 1xX^4 + 0xX^3 + 0xX^2 + 1xX^1 + 1 -->10011(系数)
将被除数和除数进行模2除法运算,得余数即CRC校验码。
加权校验码
计算步骤:
对代码本体的每一位加权求和,设代码本体为C1, C2, ..., Cn,权因子为P1, P2, ..., Pn,加权求和S=ΣCi Pi。
以模除和得余数R=S mod M,其中M为模数,可取10, 11等。
模减去余数得校验位,即校验码。
ISBN校验码
计算步骤:
对17位数字各位数字与对应的加权因子的乘积求和S。
计算S除以11的余数T。
计算(12-T)除以11的余数R,如果R=10,校验码为字母“X”;如果R≠10,校验码为数字“R”。
组织机构代码校验码
计算步骤:
对代码本体的每一位加权求和,设代码本体为C1, C2, ..., Cn,权因子为P1, P2, ..., Pn,加权求和S=ΣCi Pi。
以模除和得余数R=S mod M,其中M为模数,可取10, 11等。
模减去余数得校验位,即校验码。
根据具体的校验码类型和应用场景,可以选择相应的计算方法进行计算。