题目描述
现实中的网络通讯不够理想,经常会有bit从0变1,从1变0...为了检验是否出错 需要用到循环冗余校验CRC
CRC冗余检验码包含两个部分 k位信息位+n位校验位,可由以下的步骤得到:
1.将要传送的数据分段,每段k个bit,如果不足k位用0补齐
2.对于每个长度为k的01序列M, 先在M后面加n个0得到新的M'.
3.选定一个(n+1)位的01序列做为除数P,对M'做**模2的除法,得到一个n位的余数R(即校验位).
4.将R接到M的后面就得到了M的 CRC冗余检验码
请写一个程序模拟处理出CRC码的过程.
**注意此处模2的除法是不进位的除法,除数和被除数做异或运算 。进行异或运算时除数和被除数最高位对齐,按位异或 。如图所示
【摸拟,坑题湘潭大学OJ1200ProblemCRC】输入
多组样例输入,每个样例有3行. 第一行三个整数m,n,k.(m>0&&m0&&n=n k>0&&k