checksum 与 CRC的不同之处

2024-09-08 01:28
文章标签 crc checksum

本文主要是介绍checksum 与 CRC的不同之处,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实际应用:

CRC:在外发电压时,在报文的最后两个字节做了CRC计算。

checksum : 在按键状态外发,在报文的最后一个字节做了checksum计算。

它们的共同之处:目的都是为了数据的错误检测功能。

只是在算法的复杂度上有较大的区别:

总的来说,CRC算法更复杂,可检测的错误也比较丰富。

CRC与checksum的计算方式都是固定的吗?

在实际应用中,并没有通知对方,所用的算法种类,所以存在一致的解法。

但不可能完全固定,在AI的回答里,checksum有几种常见的算法,CRC好一些,CRC是要提供一个初始值,和多项式。

这篇关于checksum 与 CRC的不同之处的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146722

相关文章

校验码:奇偶校验,CRC循环冗余校验,海明校验码

文章目录 奇偶校验码CRC循环冗余校验码海明校验码 奇偶校验码 码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据检验码的码距。 奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。 奇校验:整个校验码中1的个数为奇数 偶校验:整个校验码中1的个数为偶数 奇偶校验,可检测1位(奇数位)的错误,不可纠错。

【LoRa】打开硬件CRC校验功能,但没有起作用?

目录 1 前言2 解析3 结论 1 前言 在使用LoRa模式(非FSK)时,可能遇到明明RX端已经打开CRC校验了,为什么payload错误了,没有报CRC error中断?本章就这个问题展开讲讲,如何正确使用芯片的硬件CRC校验,并延申到CR和payload length的使用。 2 解析 确实存在前言中的现象,前提是使用的explicit header模式,即有heade

Android开发中使用CRC校验

最近手头的一个项目,客户端和服务端之间进行通讯时,由于受到当地网络等问题的限制,使用Json传输,数据内容过于庞大,需要对该信息进行压缩,以便实现快速传输。这里使用Byte数组进行传输,前后台对协议进行商定,而后编码、传输、解码实现通信,传输过程中,为保证传输内容的完整性,需要使用CRC进行校验。 CRC概念——百度百科 CRC即循环冗余校验码(Cyclic Redundancy Check[

【CRC校验】CRC-16/MODBUS 源码(查表法)

废话少说,直接上代码: 源码 /*************************** CRC校验函数 ***************************//* Table of CRC values for high-order byte */const uint8_t crcTableHigh[] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x8

Java实现循环冗余码(CRC)生成算法

Java实现循环冗余码(CRC)生成算法 一、CRC生成算法原理 1.1 多项式编码 多项式编码(polynomial code),也称为CRC(cyclic redundancy check,循环冗余校验码),多项式编码的思想是:将位串看成是系数为0或1的多项式。CRC校验保护的单位是数据块。数据块的大小根据实际情况而定。每一个数据块均被看作是一个二进制多项式,即所有系数均为二进制(

奇偶校验、crc循环冗余检验

数据链路层 链路 从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换点 数据链路 是指把实现通信协议的硬件和软件加到链路上 帧 在数据链路上传输的数据包,称之为帧 数据链路层是以帧为单位进行传输和处理数据的 数据链路层的三个重要问题 封装成帧 将数据链路层给网络层交付的协议数据单元添加帧头和帧尾的操作称之为封装成帧 添加帧头帧尾的目的,都是为了以帧为单元传送数据

计算循环冗余码(CRC)--软考笔记

1、什么是CRC循环冗余码(CRC) CRC(Cyclic Redundancy Check)是一种用于检测数据传输错误的校验码。它通过一个预定义的生成多项式来计算一个固定长度的校验值,这个值被附加到原始数据上一起发送。接收端使用相同的生成多项式重新计算校验值并与接收到的校验值进行比较,以此来检测数据在传输过程中是否发生了改变。 CRC的主要优点包括计算简单、检测错误能力强等。常见的CRC标准

Modbus CRC和LRC算法研究及代码实现

一、CRC(循环冗余校验) 1 CRC16实现流程 XOR = 异或 N = 字节的信息位 POLY = CRC16 多项式计算 = 1010 0000 0000 0001 (生成多项式 = 1 + x2 + x15 + x16) 在CRC16中,发送的第一个字节位低字节 2 CRC16实例推导 3 CRC16代码实现 unsigned short CRC16(unsigned cha

rsync之checksum

rsync 是一个用于在本地和远程系统之间同步文件和目录的工具。它非常高效,因为它只复制差异部分的文件,而不是整个文件。--checksum 参数在 rsync 中的使用是为了通过文件的校验和(checksum)来确定文件是否需要更新。 --checksum 参数的作用 默认情况下,rsync 是通过文件的大小和最后修改时间来判断文件是否需要同步的。但在某些情况下,文件的大小和修改时间可能未改

使用C语言实现CRC校验的方法

原文转自:http://www.jb51.net/article/36832.htm 本篇文章是对使用C语言实现CRC校验的方法进行了详细的分析介绍,需要的朋友参考下 CRC(Cyclic Redundancy Check)校验应用较为广泛,以前为了处理简单,在程序中大多数采用LRC(Longitudinal Redundancy Check)校验,LRC校验很好理解,编程实现简单。