校验码:就是在传输信号的基础上加上一个位
例如,传2位,我们认为加上1位,变成传3位
那么,有用的信号位只有2位,即4种状态;但是现在的3位共有八种可能
也就是说会有4个状态是非法状态
那么,在最后接收信息方得到信息后,只要对比收到的信息是否是合法的,即可判断信息传递的准确性
因为,如果接收信息为非法,那么说明数据在传输过程中出错了
奇偶校验码:
奇数校验码,就是说传输过去的数据必须有奇数个1
如果不够奇数个1(为偶数个1),那就添一个1;如果已经是奇数,那就添0
这样,在传过去的时候,接收方就可以通过判断1的个数来确定信息传输的准确性
如果接收到的数据,1是奇数个,就是对的;如果是偶数个1,那就是错的,再传
偶数校验码也是一样的道理
但是这有一个缺陷:那就是,假如变了偶数个1(例如2个),
那么无论是奇数校验码还是偶数校验码,原来有奇数/偶数个1,丢了以后照样有奇数/偶数个1
无法判断
异或运算:相异为1,相同为0
我们认为的实现添加奇偶校验位很简单,只需要数1的个数是奇数还是偶数即可
但是硬件怎么实现呢?
对每一个信息位逐个往后进行异或运算,最后得到的是0/1,那么偶校验位就是0/1
注意,这是偶校验,不是奇校验;奇校验就反过来就好