【计算机基础】数据校验与奇偶校验
博客说明
文章所涉及的部分资料来自互联网整理,当然还有自己个人的总结和看法,分享的目的在于共建社区和巩固自己。引用的资料如有侵权,请联系本人删除!幸好我在,感谢你来!
前言
数据校验在上学的时候不认真,现在自由了,反倒舔着脸去学。
数据校验:你礼貌吗? 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。
奇校验的检错码
偶校验
要求添加上校验位后,数据中1的个数为偶数。
偶校验的公式
偶校验的检错码
奇偶检测不能定位错误。不具备纠错能力。
双向奇偶校验
双向奇偶校验,又称方块校验或垂直水平校验。
双向就是说,矩阵式传输,横向纵向都有校验位。这样能增加校验的能力。
感谢
万能的网络
公众号-归子莫,小程序-小归博客
如果你感觉对你有帮助的话,不妨给我点赞👍吧,持续关注也行哈!