YourTools.
English
返回目录
工具

CRC 与校验和

计算十六进制字节或文本的 CRC-8、CRC-16(Modbus、CCITT、XMODEM 等)、CRC-32、CRC-32C、Adler-32、BCC(异或)、LRC 与 8 位累加和,以十六进制、十进制和二进制显示。

本地处理

文件只在当前浏览器处理;关闭或清空后不保留。

输入文本

输入或粘贴要处理的文本

调整设置

可调整算法、输入格式

CRC 与校验和

开始处理

在本机浏览器中处理,可随时取消

请先输入文本

工具介绍

计算十六进制字节或文本的 CRC 与校验和,适合串口通信和嵌入式开发:给 Modbus RTU 报文补上 CRC-16,核对设备指令的 BCC、LRC,或者通过对比结果确认数据手册说的是哪一种 CRC。

支持 CRC-8、CRC-16(MODBUS、CCITT-FALSE、XMODEM 等 6 种)、CRC-32、CRC-32C、Adler-32、BCC、LRC 和 8 位累加和。结果以十六进制、十进制和二进制显示,16 位和 32 位结果还会给出两种字节顺序。最多处理 1 MB,在浏览器中完成,不上传。

使用步骤

  1. 输入或粘贴数据,也可以点击“使用示例”载入一条 Modbus 请求(01 03 00 00 00 0A)。
  2. 把“输入格式”设为“十六进制字节”或“文本(UTF-8)”。
  3. 选择“算法”,默认为 CRC-16/MODBUS。
  4. 点击“运行”,预览 checksum.txt,需要时下载。

格式与限制

输入
文本
输出
纯文本
大小上限
1 MB
可调设置
算法;输入格式(十六进制字节、文本)
隐私
文件留在当前浏览器会话中,不上传文件字节。
费用
免费,无需注册

常见问题

Modbus RTU 的 CRC 按什么字节顺序追加?

Modbus RTU 先发送 CRC 的低字节,请使用结果中的“Bytes, low first”一行。例如 01 03 00 00 00 0A 的 CRC 为 CDC5,追加时写作 C5 CD。

为什么不同工具算出的 CRC-16 不一样?

“CRC-16”其实是一类算法,多项式、初始值、是否反转位序和最终异或值都可能不同。例如 ARC 和 MODBUS 的多项式都是 0x8005,但初始值分别为 0x0000 和 0xFFFF。可以逐个尝试,找出与已知报文一致的那一种。

十六进制输入可以怎么写?

写成成对的十六进制数字即可,中间可以有空格、逗号、冒号或短横线,0x、\x 前缀会被去掉。数字个数为奇数时会报错。

为什么加了一个换行,结果就变了?

选择“文本(UTF-8)”时,每个字节都参与计算,包括空格和换行,一个汉字占 3 字节。需要输入确切的字节值时,请改用“十六进制字节”。

LRC、BCC 和 8 位累加和怎么算?

LRC 是所有字节 8 位累加和的补码,Modbus ASCII 使用这种校验;BCC 是所有字节的异或;8 位累加和只保留总和的最低字节。