为什么要对数据进行校验?有哪些常用的检验方法

 我来答
Galaxy000001
2023-07-06 · TA获得超过152个赞
知道大有可为答主
回答量:2093
采纳率:99%
帮助的人:30.3万
展开全部

数据校验是为保证数据的完整性,用一种指定的算法对原始数据计算出的一个校验值。接收方用同样的算法计算一次校验值,如果和随数据提供的校验值一样,说明数据是完整的。常用的检验方法有5种,具体如下:

1、最简单的校验。

最简单的校验就是把原始数据和待比较数据直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。

例如:龙珠cpu在线调试工具bbug.exe。它和龙珠cpu间通讯时,bbug发送一个字节cpu返回收到的字节,bbug确认是刚才发送字节后才继续发送下一个字节的。

2、奇偶校验(Parity Check)。

在数据存储和传输中,字节中额外增加一个比特位,用来检验错误。校验位可以通过数据位异或计算出来。

应用例子:单片机串口通讯有一模式就是8位数据通讯,另加第9位用于放校验值。

3、BCC异或校验法(block check character,块校验码)。

很多基于串口的通讯都用这种既简单又相当准确的方法。它就是把所有数据都和一个指定的初始值(通常是0)异或一次,最后的结果就是校验值,通常把它附在通讯数据的最后一起发送出去。

接收方收到数据后自己也计算一次异或和校验值,如果和收到的校验值一致就说明收到的数据是完整的。

4、LRC纵向冗余校验(Longitudinal Redundancy Check)。

实现方式:将ASCII码帧中的头和尾去掉,将串中的每个字节变成16进制相加,再将结果取反加1(补码),就是VRC(vertical redundant code,垂直冗余码)了。

应用例子:在行列格式中(如磁带)。

5、CRC(Cyclic Redundancy Check,循环冗余校验)循环冗余校验。

它是利用除法及余数的原理来做错误侦测(Error Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式