海明校驗碼

2022-04-08 13:52:52 字數 1261 閱讀 2798

計算機組成中的海明校驗碼,相信學過的都會有了解,那麼對其中校驗位的確定,我想似乎有些人不是很明白,今天我來詳細的把如何確定校驗位分享一下

首先看下基本的概念  :

2^r≥k+r+1  

其中r為校驗位 ,k為資訊位  資訊位是已知的,那麼如何確定校驗位呢,用乙個例子來說明 

例如:二進位製碼1011  求它的海明編碼 步驟如下:

1、首先確定資訊位,也就是1011了,那麼隨之k的長度也就知道了是4位

2、確定校驗碼是幾位  根據上述公式我們去試最接近而且滿足條件的值,1011的校驗位是3,也就是r=3,這樣剛好滿足了條件  

3、確定了校驗位的位數之後就是來確定校驗位的值以及分配校驗位了  

首先來看分配校驗位:  一般來說校驗位都是放在2^n的位置處,也就是1、2、4、8....  

其次就是確定分組(也就是確定校驗位的值) 

通過初步的解題我們知道了校驗位+資訊位一共是7位,那麼我們首先來畫乙個表,分別把這些資料填進去  

注釋:  我分別把七個位置用1~7來表示了  在填寫資訊為的時候也要把高位的資料填到高的位置 ,例如1011  就要類似圖中的填法  

確定校驗位的分組原則:

1.每個位置的校驗位確定: 要想校驗第幾位 (i)  那麼i就等於校驗位所在位置的加和    舉個簡單的例子,加入我要教研第3位,那麼3=1+2  也就是3 由第乙個和第二個校驗位來校驗,照這樣的演算法,以此類推,我們就可以知道每個位置都需要哪個校驗位來校驗了 

下面是1011的校驗位分配表

按上述方法分配好後,我們已經明確的知道了每個位置都需要利用哪些位置來校驗,下面也是關鍵的一步了 

我們要把這些資料彙總起來,也就是每個校驗位都校驗了哪些位置,就分別把這些位置的值按亦或計算(也就是相同的值就為0  ,不相同時就取1)  這樣就得到了每個校驗位的值了 

下面我們來看看,每個校驗位都分別校驗了哪些位置 :

由此表可以看出對於校驗位所要校驗的位置,已經確定了,餘下的就是計算檢驗位的值了,(利用亦或運算) 

到此位置,我們就求出了校驗位的值,同時海明碼也就出來了 

保留:檢1糾1 和檢2糾1

海明校驗碼

這是關於計算機基礎的知識。我們都知道計算機系統執行時,各個部件之間要進行資料交換,為了確保資料在傳送的過程中正確無誤,一是提高硬體電路的可靠性,二是提高 的校驗能力,包括查錯和糾錯。此文主要是從海明碼的校驗能力來說,也是使用校驗碼的方法來檢測傳送的資料是否出錯。它的實現原理,是在m個資料位之外加上k...

海明校驗碼

是由貝爾實驗室的richard hamming設計的,是一種利用奇偶性來檢錯和糾錯的檢驗方法。海明碼的構成方法是在資料位之間的特定位置上插入k個校驗位,通過擴大碼距來實現檢錯和糾錯。實現原理 是在m個資料位之外加上k個校驗位,從而形成乙個m k位的新的碼字,使新的碼字的碼距比較均勻地拉大。把資料的每...

常用校驗碼(奇偶校驗碼 海明校驗碼 CRC校驗碼)

一 奇偶校驗碼 二 海明校驗碼 三 crc校驗碼 計算機系統執行時,各個部之間要進行資料交換.交換的過程中,會有發生誤碼的可能 即0變成1或1變成0 由於計算機的儲存是通過二進位制 來實現的的,誤碼會導致儲存的內容發生改變。為確保資料在傳送過程正確無誤,常使用檢驗碼.我們常使用的檢驗碼有三種.分別是...