crc16_ibm模式效验原理
时间: 2023-07-23 09:47:06 浏览: 306
在计算机通信中,CRC(Cyclic Redundancy Check,循环冗余校验)是一种常用的数据检验方法。CRC16是一种常见的CRC校验方法,其中的CRC16-IBM模式效验原理如下:
1. 首先,将要传输的数据转换为二进制流。
2. 然后,将一个预设的16位二进制数(通常称为“生成多项式”)作为除数,将这个除数左移16位(即在最高位补16个0),得到一个16位的除数。
3. 接下来,将这个除数与二进制流的前16位进行异或运算(即,如果两个二进制位的值不同,则结果为1,否则为0),得到一个16位的余数。
4. 将这个余数右移一位,再将二进制流的下一个位与余数的最高位进行异或,得到一个新的余数。
5. 重复上一步,直到处理完所有的二进制流。
6. 最后,将得到的16位余数按照低位在前、高位在后的顺序排列,就是CRC16-IBM校验码。
CRC16-IBM模式效验原理的关键在于生成多项式的选择,IBM公司推荐使用0x8005作为生成多项式,这个生成多项式的二进制表示为1000000000000101,因此,CRC16-IBM校验码是基于这个生成多项式计算出来的。
阅读全文