当前位置: 首页 > news >正文

CRC码计算原理

CRC8

这里先以CRC8来说明CRC的计算过程

1、CRC8在线计算器

通过CRC在线计算器可以看见CRC8的特征多项式:x8+x2+x+1,初始值为0000’0000。

CRC计算的核心是:反转+异或+移位(此处的CRC8没有涉及反转,见后面CRC16)。

2、CRC8计算过程

(1)、取值

从高到低依次取需校验数据的位,这里先取0x51的MSB

DIN=0b

(2)、异或

1)中间值的确定

中间值是特征多项式中除最高位外的其他数,此处是IN2、IN1、IN0

2)中间值IN0的计算

IN0=DIN⊕MSB

IN0=DIN⊕bit7

3)中间值INx的计算

INx=IN0⊕bit(x-1)

IN1=IN0⊕bit0

IN2=IN0⊕bit1

(3)、移位

1)先移INx

bit2=IN2

bit1=IN1

bit0=IN0

2)再移其他

bit7=bit6

bit6=bit5

bit5=bit4

bit4=bit3

bit3=bit2

重复步骤1-3直到需校验数据的LSB

3、使用EXCEL验证

CRC16

使用CRC16/IBM进一步验证

1、CRC16在线计算器

CRC16的特征多项式:x16+x15+x2+1,初始值为0000’0000’0000’0000。

2、CRC8计算过程

(0)、输入反转

输入数据按字节反转。0x51的反转结果是0x8A

0b1010'0001→0b1000'0101

(1)、取值

从高到低依次取需校验数据的位,这里先取0x8A的MSB

DIN=1b

(2)、异或

IN0=DIN⊕bit15

IN2=IN0⊕bit1

IN15=IN0⊕bit14

(3)、移位

bit15=IN15

bit14=bit13

bit13=bit12

bit12=bit11

bit11=bit10

bit10=bit9

bit9=bit8

bit8=bit7

bit7=bit6

bit6=bit5

bit5=bit4

bit4=bit3

bit3=bit2

bit2=IN2

bit1=bit0

bit0=IN0

重复步骤1-3直到需校验数据的LSB

(4)、输出反转

校验码=bit0-bit15

3、使用EXCEL验证

CRC8的计算原理图
CRC8的计算原理图

 参考:

CRC(循环冗余校验)在线计算_ip33.com

CRC在线计算 (lddgo.net)

C语言CRC-8 ROHC格式校验函数_rohc crc-CSDN博客

【CRC笔记】CRC-8 ROHC C语言实现_crc8 rhoc-CSDN博客

http://www.lryc.cn/news/458612.html

相关文章:

  • 对高危漏洞“Docker Engine API is accessible without authentication”的修复
  • 两种方式创建Vue项目
  • 深入理解 C/C++ 指针
  • 有什么方法可以保护ppt文件不被随意修改呢?
  • [C#]项目中如何用 GraphQL 代替传统 WebAPI服务
  • 对后端返回的日期属性进行格式化(扩展 Spring MVC 的消息转换器)
  • 踩坑记录-用python解析php Laravel8生成的jwt token一直提示 Invalid audience
  • 使用IOT-Tree Server制作一个边缘计算设备(Arm Linux)
  • (JAVA)B树和B+树的实现原理阐述
  • JC系列CAN通信说明
  • Ubuntu22——安装并配置局域网文件共享系统Samba
  • HTML CSS 基础
  • Nginx 使用 GeoIP 模块阻止特定国家 IP 地址的最佳实践
  • vue3 + vite + cesium项目
  • DR模式 LVS负载均衡群集
  • mysql复制表结构和数据
  • MFC扩展库BCGControlBar Pro v35.1新版亮点:改进网格控件性能
  • Python列表操作详解
  • 畅捷通T+对接聚水潭成功实施案例
  • leetcode-312. 戳气球
  • 程序设计基础I-实验7 函数(编程题)
  • 使用3080ti配置安装blip2
  • vue3组件通信之defineEmits
  • rust gio-rs 挂载 samba 磁盘
  • 幸存者游戏(类)
  • SQL 中UPDATE 和 DELETE 语句的深入理解与应用
  • 在 Windows 上查找和结束占用特定端口占用程序,并杀死
  • sql server尽量避免滥用影响性能的标量函数
  • python画图|二维动态柱状图输出
  • CocosCreator 快速部署 TON 游戏:Web2 游戏如何使用 Ton支付