【计算机基础】数据校验与奇偶校验

999 阅读4分钟

【计算机基础】数据校验与奇偶校验

博客说明

文章所涉及的部分资料来自互联网整理,当然还有自己个人的总结和看法,分享的目的在于共建社区和巩固自己。引用的资料如有侵权,请联系本人删除!幸好我在,感谢你来!

前言

数据校验在上学的时候不认真,现在自由了,反倒舔着脸去学。

数据校验:你礼貌吗? or 礼貌:你数据校验了吗?

复制个标题的文案,一起来看看复杂的数据校验吧!

为啥要做数据校验

数据在我们生活中几乎处处都是,在计算机中也是最重要的一部分,可以说是计算机的血。通过之前的文章我们知道数据在计算机中是以二进制的形式存在的。一个很小很小的数据,转化为二进制的话都是十分庞大的。

而在计算机中,数据不是一尘不变的,需要通过移动,传输。在这个过程中,可能会受到外界的干扰,导致二进制的某位或者多位缺失错误等。(二进制的数错一位那就是天然之别了)

所以不校验的话,数据很难得以保证完全。所以校验是需要的,而且是必要的!

数据如何校验

数据如何校验,就像问怎么证明你本人是你,那当然是得有身份证哈。

要想校验数据,光有本来的数据是不够的,没办法进行校验,所以得在添加额外的冗余码,也称校验位。

所以发送出来的信息就是 有 效 信 息 ( K 位 ) + 校 验 信 息 ( r 位 )

将一段数据通过特殊的编码后发送,接收方也用特定的格式去解码,如果预期的数一致,可以从主观上来判定是没错的。但其实这样认为是不严谨的。

码距

想要清楚的了解数据的校验,那么码距的概念还是需要了解。

两个码字的对应比特取值不同的比特数称为这两个码字的海明距离。一个有效编码集中,任意两个码字的海明距离的最小值称为该编码集的海明距离。

举例如下:10101和00110从第一位开始依次有第一位、第四、第五位不同,则海明距离为3。

码距为1时无法识别1位错误。因为任何一种错误都是有效编码。

码距与纠错能力的渊源

  • 码距 ≥ e + 1,可以检测出e个错误
  • 码距 ≥ 2 t + 1,可以纠正t个错误
  • 码距 ≥ e + t + 1,可以纠正t个错误,同时检测e个错误

通过公式可清楚的得知,码距越大,抗干扰能力越强,纠错能力越强。

但是带来的问题也需要考虑,比如数据冗余大,编码效率低,电路复杂等。

奇偶校验

奇偶校验分为奇校验和偶校验。

奇偶校验是一种校验代码传输正确性的方法,根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。

采用何种校验是事先规定好的

通常会添加一个奇偶校验位。

奇校验

要求添上校验位后,数据中1的个数为奇数。

奇校验的公式

计算方式

偶数个1,进行异或运算后,得到的结果必定是0,奇数个1得到的结果必定是1。而0不管有偶数个还是奇数个,异或出来都是0。

image-20211226172822735

奇校验的检错码

image-20211226173014156

偶校验

要求添加上校验位后,数据中1的个数为偶数。

偶校验的公式

image-20211226173102808

偶校验的检错码

image-20211226173210272

奇偶检测不能定位错误。不具备纠错能力。

双向奇偶校验

双向奇偶校验,又称方块校验垂直水平校验。

双向就是说,矩阵式传输,横向纵向都有校验位。这样能增加校验的能力。

感谢

万能的网络

以及勤劳的自己,个人博客GitHub测试GitHub

公众号-归子莫,小程序-小归博客

如果你感觉对你有帮助的话,不妨给我点赞👍吧,持续关注也行哈!