CRC循环冗余码的C语言实现
来源:互联网 发布:初恋怪兽 知乎 编辑:程序博客网 时间:2024/05/16 10:28
关于循环冗余码的定义,可以百度:http://baike.baidu.com/view/575295.htm#sub575295
计算余数的二进制除法
第一步,要在数据位(被除数)后边补0,0的个数比除数(生成多项式)少一位。
第二步,做除法,从被除数的头五位减去五位的除数。除数的每一位都与被除数的对应位在不涉及上一位的情况下独立进行减法(实际进行的是模2加)。在本例中,除数11001与被除数的前五位10110进行的是模2加,得到1111(余数1前面的0被省略)。
在被除数中下一个没有使用过的比特接着被抄录下来,使得余数的位数和除数的位数相同。如果位数不够,在商位补0(这与一般除法相同),因此,下一步就是11110Å11001,结果是111,依次类推。
在二进制除法中,除数总是以1开头的,然后从上一次的被除数/余数中与除数位数相同的部分中减去除数,并且只能从最左位是1的被除数/余数中减去除数。每当被除数/余数的最左位是0时,就在该步骤中把0丢弃,再把被除数中的下一个未使用比特抄录下来填充余数,同时对应的商数位补一个零,并按上述方法进行二进制除法运算,一直重复这个过程直到被除数中所有比特都被使用过。
余数100只有3位,而余数应为4位(比除数少一位),因此,取校验码时应在前面填一个0,故其CRC校验码应为0100,于是可求出该信息码的循环冗余码为101100110100。
为了判断传输的正确性,在接收端要有一个CRC校验器。它的功能和发生器一样,当收到CRC冗余校验码后,做同样的模2除法(注意,这里采用的生成多项式一定要与发送端相同)。如果余数是全0,则说明传输正确;否则,传输错误,应重传。
- CRC循环冗余码的C语言实现
- CRC冗余校验的C语言实现
- 计算机网络中CRC冗余码的c语言实现
- 循环冗余码CRC
- CRC循环冗余码
- CRC循环冗余码原理
- CRC循环冗余检测码
- 理解循环冗余码CRC
- CRC循环冗余码原理
- 循环冗余校验 CRC 的算法分析和程序实现
- 循环冗余校验(CRC校验)的实现代码
- 循环冗余校验 CRC 的算法分析和程序实现
- 循环冗余校验+CRC的算法分析和程序实现
- 循环冗余校验 CRC32 的 C 语言实现
- CRC(循环冗余码)校验即c++实现
- CRC(循环冗余码)校验即c++实现
- Java实现循环冗余码(CRC)生成算法
- CRC循环校验码c语言实现
- hehe
- 清华
- 玩转panel
- Charged Fluid Model for Brain Image Segmentation
- VC++动态链接库(DLL)编程深入浅出(二)
- CRC循环冗余码的C语言实现
- panel的各项配置
- java 实现简单http服务端,客户端DEMO
- C#--运算符
- 再谈“我是怎么招聘程序员的”(上)
- VC++动态链接库(DLL)编程深入浅出(三)
- VC++动态链接库(DLL)编程深入浅出(四)
- PHP开发一个网站
- VC++动态链接库编程之非MFC DLL