奇偶校验码
1.奇校验码 x100110…(n个) 1的个数为奇数
2.偶校验码 x100110…(n个) 1的个数为偶数
如果一个字符S的ASCII编码从低到高依次为 1100101 ,采用奇校验码,在下述收到的传输后字符种,哪种错误不能检测?(D)
A.11000011 B.11001010 C.11001100 D.11010011
解析:使用奇校验码检错 发送的数据 1100101 被修饰为 11100101 其中 1 的个数为5(奇数)个。
A.B.C选项中 1 的个数变为 4(偶数)个 很明显数据发生差错 ,而D选项中的 1 的个数依然为 5(奇数) 个 所以不能检测。
奇偶校验码的特点:
只能检查出奇数个比特错误,检错能力为50%。
CRC循环冗余码
发送端:
要传的数据 ÷ 生成多项式 = X … Y(FCS帧检验序列/冗余码)。
5 ÷ 2(生成多项式) = 2 … 1(FCS帧检验序列/冗余码)。
最终发送数据:5 + 1 = 6 。
接收端:
接收到的数据 ÷ 生成多项式 = X … 0
6 ÷ 2 = 3 … 0 。
例:要发送的数据是1101011011,采用CRC校验,生成多项式是10011,那么最终发送的数据是?
解析:计算冗余码:
1.加 0 假设生成多项式G(x)的阶为r,则加r个0 。
2.模2除法 数据加0后除以多项式,余数为冗余码/FCS/CRC校验码的比特序列。
10011表示成多项式为:X4 + X1 + X0 = X4 + X1 + 0 。(X的四次方+X的一次方+X的零次方)
阶为4.
最后把冗余码 + 发送的数据 = 1101011011 1110
答案为:1101011011 1110
谢谢你请我吃糖果