• 数据处理方法-算术编码(CRC-Java编码实现)

    CRC 的英文全称为 Cyclic Redundancy Check(Code),中文名称为循环冗余校验(码)。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。 以下步骤将描述 6 字节红外控制码生成过程: 1.从二维码的中依次顺序提取前 2 个英文字母、最后 2 个英文字母(X、x 除外,取英文字母 ASCII 值为原始数据),并从中提取出多项式 g(x)(多项式的最高位为 x16,最低为 1); 2.预置 1 个 16 位的寄存器为十六进制 FFFF(即全为 1),称此寄存器为 CRC 寄存器; 3.把第一个 8 位二进制数据(既原始数据的第一个字节)与 16 位的 CRC 寄存器的低 8 位相异或,把结果放于 CRC 寄存器,高八位数据不变; 4.CRC 寄存器向右移一位,MSB(最高位)补零,并检查右移后的移出位 LSB(最低位)。 5.如果 LSB 为 0,重复第 4 步;若 LSB 为 1,CRC 寄存器与多项式码相异或。 6.重复第 4 与第 5 步直到 8 次移位全部完成。此时一个 8-bit 数据处理完毕。 7.重复第 3 至第 5 步直到将剩下 3 个原始数据全部处理完成。 8.最终 CRC 寄存器的内容即为 CRC 值。 9.取 CRC 的得高八位作为红外控制码的第一字节,按顺序取原始数据为红外控制码的二、三、四、五字节,取 CRC 值的低八位为红外控制码的第六字节。

    0
    179
    16KB
    2020-01-14
    22
  • 阅读者勋章

    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 签到新秀

    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持续创作

    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 创作能手

    授予每个自然周发布4篇到6篇原创IT博文的用户
  • 技术圈认证

    用户完成年度认证,即可获得
  • 新人勋章

    用户发布第一条blink获赞超过3个即可获得
关注 私信
上传资源赚积分or赚钱