當前位置:編程學習大全網 - 編程語言 - 什麽是奇偶校驗

什麽是奇偶校驗

奇偶校驗(Parity Check)是壹種校驗代碼傳輸正確性的方法。根據被傳輸的壹組二進制代碼的數位中"1"的個數是奇數或偶數來進行校驗。采用奇數的稱為奇校驗,反之,稱為偶校驗。采用何種校驗是事先規定好的。通常專門設置壹個奇偶校驗位,用它使這組代碼中"1"的個數為奇數或偶數。若用奇校驗,則當接收端收到這組代碼時,校驗"1"的個數是否為奇數,從而確定傳輸代碼的正確性。

奇偶校驗需要壹位校驗位,即使用串口通信的方式2或方式3(8位數據位+1位校驗位)。奇校驗(odd parity):讓傳輸的數據(包含校驗位)中1的個數為奇數。即:如果傳輸字節中1的個數是偶數,則校驗位為“1”,奇數相反。以發送字符:10101010為例

偶校驗(even parity):讓傳輸的數據(包含校驗位)中1的個數為偶數。即:如果傳輸字節中1的個數是偶數,則校驗位為“0”,奇數相反。還是以發送字符:10101010為例

數據和校驗位發送給接受方後,接收方再次對數據中1的個數進行計算,如果為奇數則校驗通過,表示此次傳輸過程未發生錯誤。如果不是奇數,則表示有錯誤發生,此時接收方可以向發送方發送請求,要求重新發送壹遍數據。

優缺點:

奇偶校驗的檢錯率只有50%,因為只有奇數個數據位發生變化能檢測到,如果偶數個數據位發生變化則無能為力了╮(╯﹏╰)╭

奇偶校驗每傳輸壹個字節都需要加壹位校驗位,對傳輸效率影響很大。

奇偶校驗只能發現錯誤,但不能糾正錯誤,也就是說它只能告訴妳出錯了,但不能告訴妳怎麽出錯了,壹旦發現錯誤,只好重發。

雖然奇偶校驗有很多缺點,但因為其使用起來十分簡單,故目前仍被廣泛使用。

應用:

如何用編程確定壹個字節中“1”個數的奇偶性?我們可以利用二進制數相加的特點:

0+0=0、1+0=1、1+1=0

可以看出,如果我們將壹個字節的所有位相加

有奇數個“1”的字節的和為1

有偶數個“1”的字節的和為0

由此即可通過編程完成判斷。實際應用中,實現方法很多,但這是相對簡單的壹種,這裏不再贅述。

  • 上一篇:2022年杭州培訓機構復工時間
  • 下一篇:中班語言活動教案:小烏龜開店
  • copyright 2024編程學習大全網