单项选择(2017年秋程序员软考)

以下关于海明码的叙述中,正确的是【 】。

A、校验位随机分布在数据位中

B、所有数据位之后紧跟所有校验位

C、所有校验位之后紧跟所有数据位

D、每个数据位由确定位置关系的校验位来校验

答案解析

D

【解析】

海明码的编码方式如下:设数据有n位,校验码有x位。则校验码一共有2x种取值方式。其中需要一种取值方式表示数据正确,剩下2x-1种取值方式表示有一位数据出错。因为编码后的二进制串有n+x位,因此x应该满足2x-1≥n+x。

校验码在二进制串中的位置为2的整数幂,剩下的位置为数据。

讨论