文章目录
本文讲述了计算机考研中易出现的循环冗余校验,点赞+关注+收藏不迷路哦
我是一名双非计算机本科生,希望我的文章可以帮助到你。
奇偶效验
奇偶校验:也可以检测数据在传输过程中是否出现错误,检测原理是如果是奇校验,那么就是设定1的个数为奇数,如果传输过程中出现错误,1的会变为偶数就可以检测出错误,但是如果两位发生变化1-0,0-1.该方法就会出现问题,所以引入了循环冗余校验。
循环冗余校验
循环冗余校验(Cyclic Redundancy Check,CRC)是一种在数据通信中常用的错误检测技术。它是一种通过在发送端对数据进行处理,附加一定的冗余信息(校验码),使得接收端能够在接收到数据时检测出是否有错误的方法。
java
CRC 的优点和特点包括:
简单高效: 实现简单,计算速度较快。
广泛应用: 在以太网、Wi-Fi、蓝牙等通信协议中得到广泛应用。
检测能力: 能够检测大多数常见的传输错误,包括插入、删除和替换少量比特的错误。
例题
如果某一数据通信系统采用CRC校验方式,生成多项式G(x)为x5+x3+x+1,要发送的数据比特序列为10010111,请回答以下问题:
(1)写出生成多项式的二进制比特序列;(2分)
(2)生成多项式中的阶r是多少?(2分)
(3)校验比特序列是多少?(需给出详细解答过程,4分)
最后要传输的信息比特序列是多少?(2分)
(1)101011;(2分)
(2)r=5;(2分)
(3)11100;(2分)
1001011111100。(2分)
四步走
计算步骤分为四部,口诀记住
1 构造除数,找到给出的多项式的最大次方n,除数的位数是n+1。对应的x有次方就是对应的1,没有次方就对应0;比如得到的就是101011
2 构造被除数,需要传输的信息+n个0
3相除,二进制之间的相除是异或运算,上下两个相同的位置,如果相同那么就为0,不相同就为1。得到除数
4 检测余数,余数的位数如果小于n,需要在后面补上0,保证余数的位数是n。
和需要传输的序列拼接在一起就得到了对应传输的序列。
下面是计算过程·
另一种题型
给出多项式和传输后得到的二进制序列,问传输过程中是否出现错误,只需要将传输后的数据除以根据多项式得到的二进制序列,看余数是否为0.如果余数为0,那么说明传输过程中没有出现错误。如果余数不为0.,说明在传输过程中出现了错误。