1.什么是奇偶校驗碼
奇偶校驗碼也是一種校驗碼,它用來檢測數據傳輸過程中是否發生錯誤,是眾多校驗碼中最為簡單的一種。
顧名思義,它有兩種校驗方法:奇校驗和偶校驗
奇校驗:原始碼流+校驗位 總共有奇數個1
偶校驗:原始碼流+校驗位 總共有偶數個1
2. 算法
跟CRC類似,也是在原始碼流后面,加上校驗位。不同的是,它的校驗位只有一位,要么是0,要么是1。並且它的校驗碼還可以放在碼流的前面。
如下圖。
例如下圖有5組原始碼,校驗位的計算方法如下。紅色代表校驗位。
相信大家稍微動下腦子就能想明白,我就不做過多解釋了。
3. 應用舉例
奇偶校驗碼一個最為常見的應用場合就是ASCII碼。
ASCII碼占用一個字節,低7位是有效位,最高位用作奇偶校驗。
4. 錯誤檢測能力
只能檢測出奇數個錯誤。
例如還是ASCII碼 大寫字母 A
奇校驗 正確碼流 11000001
錯1位 11000011 變成了偶數個1,能檢測出錯誤
錯2位 11000010 變成了奇數個1,檢測不出錯誤
錯3位 11001010 變成了偶數個1,能檢測出錯誤
偶校驗 正確碼流 01000001
錯1位 01000011 變成了奇數個1,能檢測出錯誤
錯2位 01000010 變成了偶數個1,檢測不出錯誤
錯3位 01001010 變成了奇數個1,能檢測出錯誤
5. 奇校驗還是偶校驗
那么使用中是選擇奇校驗還是偶校驗呢? 其實都有應用了。
奇校驗一個重要的特征是產生不了全0代碼,所以在實際操作過程中選擇的時候要考慮到這一點。