5.校驗碼由于器件質(zhì)量不可靠,線路工藝不過關,遠距離傳送帶來的干擾或受來自電源,空間磁場影響等因素,使得信息在存取、傳送和計算過程中難免會發(fā)生諸如“1”誤變?yōu)椤?”的錯誤,計算機一旦出錯,要能及時檢測并糾正錯誤,其中一種方法是對數(shù)據(jù)信息擴充,加
入新的代碼,它與原數(shù)據(jù)信息一起按某種規(guī)律編碼后具有發(fā)現(xiàn)錯誤的能力,有的甚至能指出錯誤所在的準確位置使機器自動糾正,能起這種作用的編碼叫“校驗碼”(check code)。奇偶校驗碼:將每個數(shù)據(jù)代碼擴展一個二進位作校驗位(parity bit),這個校驗取0還是取1的原則是:若是奇校驗(odd parity),編碼是含“1”的個數(shù)連同校驗位的取值共有奇數(shù)個“1”;若是偶校驗(even parity),連同校驗位在內(nèi)編碼里含“1”的個數(shù)是偶數(shù)個。交叉校驗:計算機進行大量字節(jié)傳送時一次傳送幾百甚至更多字節(jié)組成的數(shù)據(jù)塊,如果不僅每一個字節(jié)有一個奇偶校驗位——稱橫向校驗,而且全部字節(jié)的同一位也設置了一個奇偶校驗位——稱縱向校驗,對數(shù)據(jù)塊代碼的橫向縱向同時校驗,這種情況叫交叉校驗。循環(huán)冗余校驗碼——CRC碼(Cyclic Redundancy Check):計算機信息但向遠方終端或傳到另一個計算中心時,信息沿一條通信線路一位位傳送,這種通信方式叫串行通信。循環(huán)冗余碼(簡稱CRC碼)就是一種檢驗能力很強,在串行通信中廣泛采用的校驗編碼。
(1)CRC碼串行傳送的信息M(X)是一串k位二進制序列,在它被發(fā)送的同時,被一個事先選擇的“生成多項式”相除,“生成多項式”長r+1位,相除后得到r位余數(shù)就是校驗位,它拼接到原k位有效信息后面即形成CRC碼。CRC碼到達接收方時,接收方的設備一方面接收CRC碼,一方面用同樣的生成多項式相除,如果正好除盡,表示無信息差錯,接收方去掉CRC碼后面r位校驗,收下k位有效信息;當不能除盡時,說明有信息的狀態(tài)位發(fā)生了轉(zhuǎn)變,即出錯了。一般要求重新傳送一次或立即糾錯。
(2)CRC碼計算傳送信息時生成CRC碼以及接收時對CRC碼校驗都要與“生成多項式”相除,這里除法是“模2運算”,即二進位運算時不考慮進位和借位。作模2除法時,取商的原則是當部分余數(shù)首位為1時商取1,反之商取0,然后按模2減,求部分余數(shù)。這個余數(shù)不計高位。當被除數(shù)逐位除完時,最后余數(shù)的位數(shù)比除數(shù)少一位。該余數(shù)就是校驗位。它拼接在有效信息后面組成CRC碼。因為校驗位擴充了傳送部分的代碼,所以這是一種基于“冗余校驗”的思想的校驗辦法。
(3)生成多項式CRC碼是M(X)除以某一個預先選定的多項式后產(chǎn)生的,所以這個多項式叫生成多項式。并不是任何一個r+1位的編碼都可以作生成多項式用,它應能滿足當任何一位發(fā)生傳送錯誤時都能使余數(shù)不為0,并且不同位發(fā)生錯誤時應當使余數(shù)也不同,這樣不但能檢錯而且能推斷是哪一位出錯,從而有利準確的糾錯。有兩個生成多項式,其檢錯率很高。X16+X15+X2+1X16+X12+X6+16.非數(shù)值數(shù)據(jù)的表示方法計算機中數(shù)據(jù)的概念是廣義的,機內(nèi)除有數(shù)值數(shù)據(jù)之外,還有文字、符號、圖象、語言和邏輯信息等等,因為它們也都是0、1形式存在,所以稱為非數(shù)值數(shù)據(jù)。
(1)字符數(shù)據(jù)字符數(shù)據(jù)主要指數(shù)字、字母、通用符號、控制符號等,在機內(nèi)它們都被變換成計算機能夠識別的二進制編碼形式。國際上被普遍采用的一種編碼是美國國家信息交換標準代碼(American Standard Code for Information Interchange),簡稱ASCII碼。ASCII碼選擇了四類共128種常用的字符:
①數(shù)字0~9。
、谧帜。
、弁ㄓ梅。
④動作控制符。
相關推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |