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

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.xdnf.cn/news/11602.html

相关文章:

  • python中%s是什么意思_python的%s是什么意思
  • Spring Security详细介绍使用
  • LDAP概念和原理介绍
  • Google Protocol Buffers(Protobuf):入门指南、介绍和应用场景
  • 图数据库是什么?一文快速了解相关概念
  • 什么是护网?2024护网行动怎么参加?一文详解_护网具体是做啥的
  • 详解TCP协议(一)——TCP是什么及报文结构
  • EasyUi框架
  • ⭐️Composer常见错误解决
  • C++stack
  • lua入门(1) - 基本语法
  • 成成你好呀笔记整理(知识点合集三)
  • 如何理解鲁棒性?为什么robustness会翻译为鲁棒性?
  • Android :这是一份详细 全面的 SQLlite数据库 使用手册
  • vuex介绍及使用指南(面向实战)
  • Prometheus基本原理和使用
  • 男人最爱丰满女人
  • ELK日志分析系统
  • SVG基础知识
  • Spark是什么
  • Navicat Premium数据库管理工具安装教程
  • cron表达式详解
  • 介绍一个超好用的API管理工具:Apipost
  • 【Eclipse安装及使用(面向小白)】
  • Kafka介绍
  • 什么是IP?
  • 案例分享:建设企业网上办公综合平台
  • 四季度组内定期技术与架构思维交流会 Kaki的博客
  • PHP8 编程提示(二)
  • 系统提示缺少或找不到d3dcompiler_43.dll文件的详细修复教程