(1)预设一个 16 位寄存器,所有数位均为 1(即值为0x FFFF);待测数据组合 0x00 ~ 0x FF ;(2)该 16 位寄存器与待测数据进行“异或”运算,运算结果仍存该 16 位寄存器中 ;(3)将该 16 位寄存器右移一位,用 0 填补最高位 ;(4)检测移出位是 1 还是 0。若是 1,则生成多项式0x A001 和该寄存器进行“异或”运算。若是 0,则返回步骤(3);(5)重复步骤(3)和(4),直到右移 8 次,这样待测数据的 8 位数据全部进行了处理 ;(6)将得到的 16 位寄存器的高、低字节进行交换,得到的 16 位寄存器内容即为 CRC-16 校验码 ;(7)将待测数据依次设置为 0x00 ~ 0x FF(256 种),按照步骤(2)~(5)各计算一遍,得到的 256 个 CRC-16 校验码组合在一起即为 CRC-16 查询表。
1