学组成原理,学到汉明码。。唐塑飞的,里面只是说了怎么用没有说原理。。。挺不爽,就思考了下为什么。。下面的是猜测哈哈。
1.为什么 2^k >= n + k + 1?
其实是要用k位二进制去编码 n + k 。比如 n = 4, 那 只有 k >= 3 才能用3位二进制去编码 n + k + 1 = 8,为什么呢,在后面
2.为什么每一个检验位都要检验那么些个位,比如 第一个检验为就是检验1,3,5,7,9 。。。位?
因为,这些数字的二进制 第1位就是1.。。同样的。。二进制中第二个数字是1的就是第二位检验位要检验的 2,3,6,7,10,11.。。。。。。
3.还不懂?
比如我们队发送过来的包含了汉明码的二进制进行检查。。按理说,每一组检验后都应该是0吧。。这时候如果 比如第一组发现检验出来是1,,那说明错误出现的位
其二进制编码的最低位就是1。。也就是比如k = 3那这个位就只可能是 001, 011, 101, 111, 这不就是 1,3,5,7,同样的 如果后几组检验出来都是0,,那不就确定是001
出错了嘛。。。如果第二组检验出来是1 ,其他是0,那就是011也就是第3位出错哈哈。
4。以上纯属猜测,如果有朋友发现是错的。。。。。。请指出