数据链路层具有纠错检错功能以保障可靠服务。 下面进行模拟海明码。 1.内部变量 int len;//用于表明需要添加纠错码的位数vector<int>TranslateDate;//用户保存海明+数据vector<int>HeCode;//保存添加的几位海明码 2.获取k的位数 由公式 2 k > = n + k + 1 2^k>=n+k+1 2k>=n+k+1,需要计算出需要
海明码的实质,就是类似于一种二分性质的问答,每一次问答可以排除掉一半的可能,就像别人问你几个问题(均是类似“是男的吗?”这种yes or no 的问题)来猜你心中想的人。 具体通过一个例子来说明,现在我们有16个位置来传输海明码(包括信息码和校验码),我们为这16个从0-15位置编号,并将编号的位置作为校验码(原因在后面会体现出来),这里是1,2,4,8。