一個二進碼字,如果它的碼元有奇數個1,就稱為具有奇性。例如,碼字“1011010111”有七個1,因此,這個碼字具有奇性。同樣,偶性碼字具有偶數個1。注意奇性檢測等效於所有碼元的模二加,並能夠由所有碼元的異或運算來確定。對於一個n位字,奇性由式(8-1)給出:
奇性=a0⊕a1⊕a2⊕…⊕an(8-1)
很明顯,用同樣的方式,我們也能夠根據每一個碼字的零的個數來構成奇偶監督。
單個的奇偶監督碼可描述為:給每一個碼字加一個監督位,用它來構成奇性或偶性監督。例如,在圖8-2中,對於二進碼就是這樣做的。可以看出,附加碼元d2,是簡單地選來使每個字成為偶性的。因此,若有一個碼元是錯的,就可以分辨得出,因為奇偶監督將成為奇性。
在一個典型系統裡,在傳輸以前,由奇偶發生器把奇偶監督位加到每個字中。原有資訊中的數字在接收機中被檢測,如果沒有出現正確的奇、偶性,這個資訊標定為錯誤的,這個系統將把錯誤的字拋掉或者請求重發。注意,用單個的奇偶監督碼僅能檢出奇數個碼元的錯誤。
例如考慮圖8-4裡的奇性監督碼。把奇、偶監督位加到一個8-4-2-1BCD碼,使之能夠進行奇監督(將所有監督位反過來將產生偶監督碼)。可以看到,如果將任何碼字裡的奇數個碼元反過來,那麼將成為偶性碼,因而,無效的字是可以分辨出來的。然而,如果有兩個或四個碼元反過來,那末奇偶監督將仍然是奇性碼,並且這個字被認為是正確的。只當一個給定的字裡同時出現兩個錯誤的機率被忽略不計時,單個的奇偶監督才是有效的,實際上,奇監督碼比偶監督碼可取,因為它排除了傳輸全0的情況。
十進數字4位元直接二進碼奇性監督位
n8421
000001
100010
200100
300111
401000
501011
601101
701110
810000
910011
圖8-4附加奇性監督位的BCD碼
簡單的說,不帶奇偶校驗的記憶體每個位元組只有8位,如果其某一位儲存了錯誤的值,就會導致其儲存的相應資料發生變化,進而導致應用程式發生錯誤。而奇偶校驗就是在每一位元組(8位)之外又增加了一位作為錯誤檢測位。在某位元組中儲存資料之後,在其8個位上儲存的資料是固定的,因為位只能有兩種狀態1或0,假設儲存的資料用位標示為1、1、1、0、0、1、0、1,那麼把每個位相加(1+1+1+0+0+1+0+1=5),結果是奇數,那麼在校驗位定義為1,反之為0。當CPU讀取儲存的資料時,它會再次把前8位中儲存的資料相加,計算結果是否與校驗位相一致,從而一定程度上能檢測出記憶體錯誤。奇偶校驗分兩種,一種是奇校驗和偶校驗,例:奇校驗中,將原來用7位表示的最低位上加1,如果最終的二進位制數中,1的個數是奇數的話就不用加1,反之,加1。
一個二進碼字,如果它的碼元有奇數個1,就稱為具有奇性。例如,碼字“1011010111”有七個1,因此,這個碼字具有奇性。同樣,偶性碼字具有偶數個1。注意奇性檢測等效於所有碼元的模二加,並能夠由所有碼元的異或運算來確定。對於一個n位字,奇性由式(8-1)給出:
奇性=a0⊕a1⊕a2⊕…⊕an(8-1)
很明顯,用同樣的方式,我們也能夠根據每一個碼字的零的個數來構成奇偶監督。
單個的奇偶監督碼可描述為:給每一個碼字加一個監督位,用它來構成奇性或偶性監督。例如,在圖8-2中,對於二進碼就是這樣做的。可以看出,附加碼元d2,是簡單地選來使每個字成為偶性的。因此,若有一個碼元是錯的,就可以分辨得出,因為奇偶監督將成為奇性。
在一個典型系統裡,在傳輸以前,由奇偶發生器把奇偶監督位加到每個字中。原有資訊中的數字在接收機中被檢測,如果沒有出現正確的奇、偶性,這個資訊標定為錯誤的,這個系統將把錯誤的字拋掉或者請求重發。注意,用單個的奇偶監督碼僅能檢出奇數個碼元的錯誤。
例如考慮圖8-4裡的奇性監督碼。把奇、偶監督位加到一個8-4-2-1BCD碼,使之能夠進行奇監督(將所有監督位反過來將產生偶監督碼)。可以看到,如果將任何碼字裡的奇數個碼元反過來,那麼將成為偶性碼,因而,無效的字是可以分辨出來的。然而,如果有兩個或四個碼元反過來,那末奇偶監督將仍然是奇性碼,並且這個字被認為是正確的。只當一個給定的字裡同時出現兩個錯誤的機率被忽略不計時,單個的奇偶監督才是有效的,實際上,奇監督碼比偶監督碼可取,因為它排除了傳輸全0的情況。
十進數字4位元直接二進碼奇性監督位
n8421
000001
100010
200100
300111
401000
501011
601101
701110
810000
910011
圖8-4附加奇性監督位的BCD碼
簡單的說,不帶奇偶校驗的記憶體每個位元組只有8位,如果其某一位儲存了錯誤的值,就會導致其儲存的相應資料發生變化,進而導致應用程式發生錯誤。而奇偶校驗就是在每一位元組(8位)之外又增加了一位作為錯誤檢測位。在某位元組中儲存資料之後,在其8個位上儲存的資料是固定的,因為位只能有兩種狀態1或0,假設儲存的資料用位標示為1、1、1、0、0、1、0、1,那麼把每個位相加(1+1+1+0+0+1+0+1=5),結果是奇數,那麼在校驗位定義為1,反之為0。當CPU讀取儲存的資料時,它會再次把前8位中儲存的資料相加,計算結果是否與校驗位相一致,從而一定程度上能檢測出記憶體錯誤。奇偶校驗分兩種,一種是奇校驗和偶校驗,例:奇校驗中,將原來用7位表示的最低位上加1,如果最終的二進位制數中,1的個數是奇數的話就不用加1,反之,加1。