zoukankan      html  css  js  c++  java
  • 计算机网络原理----CRC编码相关问题及解题思路

    CRC编码

    • CRC编码是指循环冗余码,英文名称为Cyclical Redundancy Check,简称CRC,是一种可以检查出多位错误的校验码。
    • 校验原理:在要发送的帧后边附加上二进制数,发送给接收端,接收端接到数据帧后根据特定的位串进行去余数操作,如果结果没有余数,说明正确,否则说明数据出现错误。
    • CRC编码的计算需要利用模2除法
    • 校验码的位数比位串的位数少一位

    模2除法

    如果被除数首位是1,则商1,否则商0,商0的时候,0*除数每个位都为0 ,商1的时候,把除数原封不动的写下来。然后,与计算出来的结果进行异或运算,00=1,11=1,01=0,10=0

    位串的确定

    一般题目都会给一个生成多项式,比如G(x)=x4+x2+x+1。位串的确定也很简单,如上式,1=x的0次方,x=x的一次方,x的二次方也有,x的三次方没有,x的四次方有,用二进制表示,x的三次方不存在,则补0,存在的位都为1,此时,位串就是10110。

    CRC的编码过程

    1. 根据生成多项式确定位串,
    2. 根据位串确定校验码的位数(位串长度-1)
    3. 把要发送的数据后面补上和校验码长度相同的0
    4. 要发送的数据和位串进行模2除法运算,位串是除数
    5. 算出余数即为校验码
    6. 用校验码替换掉第3步补的0 即为加密后的数据

    例题

    1. 确定位串10111

    2. 用1001110111010000(后四个0是补位的)与10111做模2除法运算

    3. 算出来的余数1100替换掉第二步的后四个零,得1001110111011100,所以选A

  • 相关阅读:
    P1541
    P1004
    P1006
    高精度
    数组
    递归
    顺序结构
    循环结构
    变量
    分支结构
  • 原文地址:https://www.cnblogs.com/gyl5201314/p/14627915.html
Copyright © 2011-2022 走看看