早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求教计算机网络中相关于CRC校验的模2除法在循环冗余校验码(CRC)的计算中,求冗余位时的模2除法运算时,书上写的是“当被除数逐位除完时,最后得到比除数少一位的余数即为冗余位,将其添

题目详情
求教计算机网络中相关于CRC校验的模2除法
在循环冗余校验码(CRC)的计算中,求冗余位时的模2除法运算时,书上写的是“当被除数逐位除完时,最后得到比除数少一位的余数即为冗余位,将其添加在信息位后便构成CRC码字” 但在实际计算时,有时到最后并不能恰好就得到比除数少一位的余数,而是少两位或三位,此时是不是在其后用 0 补缺到比除数少一位的余数作为冗余位?(这个结论是我做题时根据答案推出来的,不知道是否正确)或是还是有其它规则呢?反过来用CRC校验码验证传输过程是否出错,即用接收方收到的码字作模2除法时的题,即验证余数是否为 0 ,若不为 0 (即传输出错)但又不是比除数少一位的余数时,有没有必要把余数补缺到比除数少一位?这是很细节的问题,但是细节往往决定成败!望大虾指点迷津,小生感激不尽!
▼优质解答
答案和解析
模2加与模2减两种运算与逻辑异或运算其运算法则完全相同,另外,模2乘除法都以模2加减法为基础,因此我们可以把模2运算看作简单的异或运算.实际上,CRC除法器就是由异或门以及时序电路构成的.
  模2除做法与算术除法类似,但每一位除(减)的结果不影响其它位,即不向上一位借位.所以实际上就是异或.然后再移位移位做下一位的模2减.步骤如下:
  a、用除数对被除数最高几位做模2减,没有借位.
  b、除数右移一位,若余数最高位为1,商为1,并对余数做模2减.若余数最高位为0,商为0,除数继续右移一位.
  c、一直做到余数的位数小于除数时,该余数就是最终余数.