㈠ 计算机网络原理中求CRC校验码。
01100。算法你可以用手算,或者用代码计算,代码分按位和按字节。手算算法是:多项式为101101你在信息的后面补5个0信息码变为1101101100000这时开始用多项式对上面的信息码进行异或操作,要打的话很麻烦。我只把没一次运算的结果写一下1:011011(注意,前面一位已经为零,这时,要在此数后面补一个数,也就是说,现在已经对8为信息码操作了一位)移位以后变为110111。(此时的首位又为1,再与多项式异或,下面的类似)2:0110103:0110004:0111015:0101116:000011 注意此时的信息码已经被操作了5次了,就是说还有3位没有操作,这时把这个数左移3位就好了,因为他的前3位都为零,所以最后的crc码为01100整个要发送的数据为11011011+01100中间算的可能有错误,开始看crc的时候可能会很难懂,看看代码很不错的
CRC即循环冗余校验码
是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。
循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设要发送的信息用多项式C(X)表示,将C(x)左移R位(可表示成C(x)*2R),这样C(x)的右边就会空出R位,这就是校验码的位置。用 C(x)*2R 除以生成多项式G(x)得到的余数就是校验码。
谢谢 希望能帮助到你