数据传输的正误
数据发出方A像数据接收方B发送一串加密过后的情书,但是信息在传输过程中可能发生错误,比如某人截获并修改内容,一段美好的爱情就结束了…(手动狗头).在电路传输中,电信号很容易受到干扰(电梯打电话你就知道了).于是我们要在原有的信息之外加上一个校验信息,这个校验信息叫做检验码.
一位奇偶检验码
奇偶校验码分两种,需要事先约定是采用奇校验方式还是偶校验方式…这种方式只能检验出奇数个错误,而无法检验出偶数个错误.这种方法也无法对错误的数据进行纠错.
这里假设传输的校验信息是最低位
接受方接收到数据后,对得到的"原信息"进行同样的操作得到新的检验码,将新的校验码与传输过来的校验码进行对比即可知道有没有发生奇数个错误.
奇校验
寄校验则是为了确保传输的所有数据中的1的个为奇数.
如果原来信息中1的个数为奇数个,则校验位为0,这样所有信息中还是奇数个1;
如果原来信息中1的个数为偶数个,则校验位为1,这样所有信息中还是奇数个1;
原信息 | 奇校验传输信息 |
---|---|
11001 | 110010 |
11011 | 110111 |
偶校验
偶校验则是为了确保传输的所有数据中的1的个为偶数.
如果原来信息中1的个数为奇数个,则校验位为1,这样所有信息中还是偶数个1;
如果原来信息中1的个数为偶数个,则校验位为0,这样所有信息中还是偶数个1;
原信息 | 偶校验传输信息 |
---|---|
11001 | 110011 |
11011 | 110110 |
电路原理极其实现
假设原传输信息为ABCD,偶校验位为Z
则 Z=A⊕B⊕C⊕D (⊕为异或,相同时为0,不同时为1)
故因此使用三个异或门即可获得偶检验码,如下图所示
左边四输入ABCD,右边为偶检验码Z输出
那如果是奇校验电路呢???
那就要酱紫来:Z=A⊕B⊕C⊕D⊕1 (⊕为异或)
电路图比上面的多一个异或门,即上一个电路图的输出与1异或即可得到奇检验位的数值
海明校验码
原理不好说,这里只说怎么算
参考
- https://blog.csdn.net/u010927640/article/details/49531781?locationNum=3&fps=1