首页 相关文章 CRC-16/CRC-32 程序代码

CRC-16/CRC-32 程序代码


  不久前写一程序时要用到 CRC-16 ,但找来找去只在 UDDF 里找到一个 Delphi 的 CRC-32 程序代码,而且是用查表法,虽然说查表法速度快,但 256 项 32 位数据我怀疑可能会有输入错误, 让人不是那么放心,而我又不知道这个表是怎么算出来的。后来我又在一本两年前的笔记本里找到一段关于 CRC 的内容, 也不知是从哪里抄来的,还好里面有一段程序代码,是 CRC-16 的,这段程序正是产生 CRC 表的, 可是这区区几行的程序(基本上与下面的 BuilderTable16 函数相同)看得我一头雾水,直到这两天才弄明白, 并据此推出 CRC-32 的算法,现将全部程序列在下面,并作一些说明以助于理解,不但要知其然,还要知其所以然嘛:
  
  // 注重:因最高位一定为“1”,故略去
  const unsigned short cnCRC_16 = 0x8005;
  // CRC-16 = X16 + X15 + X2 + X0
  const unsigned short cnCRC_CCITT = 0x1021;
  // CRC-CCITT = X16 + X12 + X5 + X0,据说这个 16 位...[ 查看全文 ]

2016-02-19 标签:

CRC-16/CRC-32 程序代码的相关文章

手机页面
收藏网站 回到头部