無校驗 (no parity)
奇校驗 (odd parity):如果字符數據位中"1"的數目是偶數,校驗位為"1",如果"1"的數目是奇數,校驗位應為"0"。(校驗位調整個數)
偶校驗 (even parity):如果字符數據位中"1"的數目是偶數,則校驗位應為"0",如果是奇數則為"1"。(校驗位調整個數)
mark parity:校驗位始終為1
space parity:校驗位始終為0
奇偶校驗這個概念在邏輯設計里面經常會用到,但有的人對奇偶校驗的理解很混亂。奇偶校驗是對數據傳輸正確性的一種校驗方法。在數據傳輸前附加一位奇校驗位,用來表示傳輸的數據中"1"的個數是奇數還是偶數,為奇數時,校驗位置為"0",否則置為"1",用以保持數據的奇偶性不變。
奇偶校驗位 (Parity)是指或者奇數或甚至對一個數字的性質。奇偶校驗通常用在數據通信中來保證數據的有效性。每個設備必須決定是否它將被用為偶校驗,奇校驗,或非校驗。發送設備添加1s在每個它發送的每條串上或決定這個數是偶數或奇數。然后,它添加一個額外的位,叫做校驗位,到這個串上。如果偶校驗在使用,校驗位將這些位置為偶數;如果奇校驗在使用,校驗位將這些位置為奇數。
例如,需要傳輸"11001110",數據中含5個"1",所以其奇校驗位為"0",同時把"110011100"傳輸給接收方,接收方收到數據后再一次計算奇偶性,"110011100"中仍然含有5個"1",所以接收方計算出的奇校驗位還是"0",與發送方一致,表示在此次傳輸過程中未發生錯誤。奇偶校驗就是接收方用來驗證發送方在傳輸過程中所傳數據是否由於某些原因造成破壞。
具體方法如下:
奇校驗:就是讓原有數據序列中(包括你要加上的一位)1的個數為奇數
1000110(0)你必須添0這樣原來有3個1已經是奇數了所以你添上0之后1的個數還是奇數個。
偶校驗:就是讓原有數據序列中(包括你要加上的一位)1的個數為偶數
1000110(1)你就必須加1了這樣原來有3個1要想1的個數為偶數就只能添1了。
大家一定會問,如何計算奇偶性呢,在計算機內有一種特殊的運算它遵守下面的規則:
1+1=0; 1+0=1; 0+1=1; 0+0=0;
我們把傳送過來的1100111000逐位相加就會得到一個1,應該注意的的,如果在傳送中1100111000變成為0000111000,通過上面的運算也將得到1,接收方就會認為傳送的數據是正確的,這個判斷正確與否的過程稱為校驗。而使用上面方法進行的校驗稱為奇校驗,奇校驗只能判斷傳送數據中奇數個數據從0變為1或從1變為0的情況,對於傳送中偶數個數據發生錯誤,它就無能為力了。
Odd Parity(奇校驗),校核數據完整性的一種方法,一個字節的8個數據位與校驗位(parity bit )加起來之和有奇數個1。校驗線路在收到數后,通過發生器在校驗位填上0或1,以保證和是奇數個1。因此,校驗位是0時,數據位中應該有奇數個1;而校驗位是1時,數據位應該有偶數個1。如果讀取數據時發現與此規則不符,CPU會下令重新傳輸數據。
奇/偶校驗(ECC)是數據傳送時采用的一種校正數據錯誤的一種方式,分為奇校驗和偶校驗兩種。 如果是采用奇校驗,在傳送每一個字節的時候另外附加一位作為校驗位,當實際數據中“1”的個數為偶數的時候,這個校驗位就是“1”,否則這個校驗位就是“0”,這樣就可以保證傳送數據滿足奇校驗的要求。在接收方收到數據時,將按照奇校驗的要求檢測數據中“1”的個數,如果是奇數,表示傳送正確,否則表示傳送錯誤。 同理偶校驗的過程和奇校驗的過程一樣,只是檢測數據中“1”的個數為偶數。
轉載於:https://blog.csdn.net/p1279030826/article/details/86599435
