這兩天學了校驗碼,在計算機系統基礎知識這塊,校驗還是挺重要的。這裡涉及到的校驗碼有三種:
奇偶校驗碼(
parity
code)
海明碼(hammi
ng code)
迴圈冗餘檢驗碼(
cyclic
redundancy check
,crc)
1.奇偶校驗碼
這是一種最簡單最有效的校驗方法,通過在編碼中新增一位校驗位。使
1的個數為偶數(偶校驗)或奇數(奇校驗)。從而使碼距變為2。
奇校驗能夠檢測**中奇數字出錯的編碼,不能夠發現偶數字出錯的情況。
2.海明碼
這是利用奇偶性來檢錯和糾錯的校驗方法。其構成方法為:在資料位之間插入
k個校驗位。求海明碼的過程能夠分為下面幾個步驟:
(1)依據資料位
n,確定校驗位
k, n和k
滿足關係:2k
-1≥n+k;
(2)設海明碼為h1
。h2。
h3。……h
n+k,
將校驗位依次放在20
,21,22
,2i-1
……的位置上。
(3)將資料位由低位到高位依次放在海明碼剩餘的位置上。
(4)找出每乙個校驗位所校驗的資料位,方法為:第乙個校驗位隔一位校驗一位。第二個校驗位隔兩位校驗兩位,第三個校驗位隔三位校驗三位……每乙個校驗位都校驗它自身;
(5)分別對每乙個校驗位所校驗的資料位做抑或運算,結果為校驗位的值。
(6)將所得校驗位的值填入當中,即得海明碼。
3.迴圈冗餘校驗碼
它由兩部分組成。左邊為資訊碼。右邊為校驗碼。校驗碼是由資訊碼產生的,求
crc編碼時,採用模
2運算。多用於資料通訊領域和磁介質儲存領域,在參加的上個中谷專案中就用到了crc校驗,那會兒對於這個東東還認為蠻深奧的呢!
軟考 海明碼和CRC碼
軟考的過程遇到海明碼和crc的碼,覺得不是很了解,查了一下資料,整理下。也是幫助自己理解,同樣希望可以大家理解海明碼和crc校正碼。核心公式 2r k r 1 其中k為資訊的個數,r為校驗位的個數,那麼我們怎樣來確定校驗位?二進位製碼 101101100,求它的海明編碼 1 資訊為k 9 r的最小值...
海明碼校驗原理
海明校驗的基本思想 將有效資訊按某種規律分成若干組,每組安排乙個校驗位,做奇偶測試,就能提供多位檢錯資訊,以指出最大可能是哪位出錯,從而將其糾正。實質上,海明校驗是一種多重校驗。海明校驗的特點 它不僅具有檢測錯誤的能力,同時還具有給出錯誤所在準確位置的能力。一 校驗位的位數 校驗位的位數與有效資訊的...
海明碼校驗程式設計
海明碼校驗程式設計 1 海明碼編碼 輸入 一串二進位制資料串 輸出 插入海明碼後的二進位制資料串 2 海明碼糾錯 輸入 一串含海明碼的二進位制資料串 輸出 通過海明碼校驗,檢查該二進位制串是否有錯,若有錯誤,則對錯誤位進行糾錯,將糾錯後的二進位制串輸出。這裡我們僅從程式設計實現的角度分析海明碼的編碼...