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

CRC 校验解释

        循环冗余校验(英语:Cyclic redundancy check,通称“CRC”)是一种根据网上数据包或计算机文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。

百度百科

CRC 计算示例

# 数据:0x1C
# CRC算法:CRC-8-ROHC
# CRC多项式:x^8+x^2+x+1
# 初始值:FF
# 结果异或值:00
# 数据输入反转:true
# 数据输出反转:true

CRC的计算方式本质是进行【模二除法】运算(异或)
输入和输出数据是否【反转】取决于选择算法
输出结果异或值取决于选择的算法

Note: 
输入数据反转REFIN:输入数据的每个字节是否按位反转。
输出数据反转REFOUT:在计算后之后,结果输出之前,整个数据是否按位反转。
以字节为最小单位,低位变高位,高位变低位,
例如:0001 1001 0010 1010得到的值是1001 1000 0101 0100

常见CRC参数表

CRC算法多项式公式宽度多项式初始值结果异或值输入反转输出反转
CRC-8x8 + x2 + x + 18070000falsefalse
CRC-8/ITUx8 + x2 + x + 18070055falsefalse
CRC-8/ROHCx8 + x2 + x + 1807FF00truetrue
CRC-8/MAXIMx8 + x5 + x4 + 18310000truetrue
CRC-16/IBMx16 + x15 + x2 + 116800500000000truetrue
CRC-16/MAXIMx16 + x15 + x2 + 11680050000FFFFtruetrue
CRC-16/USBx16 + x15 + x2 + 1168005FFFFFFFFtruetrue
CRC-16/MODBUSx16 + x15 + x2 + 1168005FFFF0000truetrue
CRC-16/CCITTx16 + x12 + x5 + 116102100000000truetrue
CRC-16/CCITT-FALSEx16 + x12 + x5 + 1161021FFFF0000falsefalse
CRC-16/X25x16 + x12 + x5 + 1161021FFFFFFFFtruetrue
CRC-16/XMODEMx16 + x12 + x5 + 116102100000000falsefalse
CRC-16/DNPx16 + x13 + x12 + x11 + x10 + x8 + x6 + x5 + x2 + 1163D650000FFFFtruetrue

# CRC在线计算

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

相关文章:

  • 深入浅出话VC++——MFC的本质
  • 手把手教你利用 Scrapy 编写一个完整的爬虫
  • 性能揭秘:电脑跑分测试你的实力
  • Linear()参数以及用法
  • yml配置文件的编写
  • 什么是RISC-V
  • 在线拼图照片制作怎么开始?6步打造精美图片集
  • mybatis-plus中wrapper的用法(详细)
  • VPC 是什么
  • 软件测试用例经典方法 | 逻辑覆盖测试法及案例
  • Excel的VLOOKUP函数及其用法
  • suse linux 远程桌面,Xmanager 远程连接CentOS linux和SUSE linux
  • 前端学习究竟该学什么?要学哪些东西?(以Vue为例)
  • OpenGL 入门 6:GLM
  • 详细解释sprintf 函数(转)
  • 网络性能测试工具-Iperf
  • [前后端]JSP入门
  • 元素定位之XPath定位-学习
  • 【Nessus安装、使用】
  • Linux命令 | 常用命令之 find
  • 字符串函数---strstr()、memchr()、strchr()详解及实现
  • 【数据结构】树(一)—— 树的基础知识(C语言版)
  • CDSN文章转载方法
  • Git从入门到熟练第十讲 cloning
  • Mac安装brew,支持m芯片,5分钟安装成功亲测有效
  • 浅谈网络共享之samba服务
  • CSS预处理语言~~Less安装与使用
  • Java的byte类型详解
  • ICMP协议与ARP协议
  • unity基础(2)——3D对象基础概念与简单操作