根據(jù)互補(bǔ)的概念,一個(gè)補(bǔ)碼機(jī)器數(shù)再求一次補(bǔ)就得到機(jī)器數(shù)的原碼了。
定點(diǎn)數(shù)與浮點(diǎn)數(shù):
(1)定點(diǎn)數(shù)(fixed-point number)
計(jì)算機(jī)處理的數(shù)據(jù)不僅有符號(hào),而且大量的數(shù)帶有小數(shù),小數(shù)點(diǎn)不占有二進(jìn)制位而是隱含有機(jī)器數(shù)里某固定位置上。通常采用兩種簡(jiǎn)單的約定:一種是約定所有機(jī)器數(shù)的小數(shù)點(diǎn)位置隱含在機(jī)器數(shù)的最低位之后,叫定點(diǎn)純整數(shù)機(jī)器數(shù),簡(jiǎn)稱定點(diǎn)整數(shù)。
另一種約定是所有機(jī)器數(shù)的小數(shù)點(diǎn)位置隱含在符號(hào)位之后、有效數(shù)值部分最高位之前,叫定點(diǎn)純小數(shù)機(jī)器數(shù),簡(jiǎn)稱定點(diǎn)小數(shù)。
計(jì)算機(jī)采用定點(diǎn)數(shù)表示時(shí),對(duì)于既有整數(shù)又有小數(shù)的原始數(shù)據(jù),需要設(shè)定一個(gè)比例因子,數(shù)據(jù)按比例因子縮小成定點(diǎn)小數(shù)或擴(kuò)大成定點(diǎn)整數(shù)再參加運(yùn)算,結(jié)果輸出時(shí)再按比例折算成實(shí)際值。n位原碼定點(diǎn)整數(shù)的表示范圍是-(2 n-1 -1)≤X≤2 n-1 -1,n位原碼定點(diǎn)小數(shù)的表示范圍是-(1-2 -(n-1) )≤X≤1-2 -(n-1) 。當(dāng)機(jī)器數(shù)小于定點(diǎn)數(shù)的最小值時(shí),被當(dāng)作0處理,超出定點(diǎn)數(shù)的最大值時(shí),機(jī)器無法表達(dá),稱作“溢出”,此時(shí)機(jī)器將停止運(yùn)算,屏幕顯示溢出警告。
定點(diǎn)數(shù)表示方法簡(jiǎn)單直觀,不過定點(diǎn)數(shù)表示數(shù)的范圍小,不易選擇合適的比例因子,運(yùn)算過程容易產(chǎn)生溢出。
(2)浮點(diǎn)數(shù)(floating-point number)
計(jì)算機(jī)采用浮點(diǎn)數(shù)來表示數(shù)值,它與科學(xué)計(jì)算法相似,把任意一個(gè)二進(jìn)制數(shù)通過移動(dòng)小數(shù)點(diǎn)位置表示成階碼和尾數(shù)兩部分 :
N=2 E ×S
其中:E---N的階碼(exponent),是有符號(hào)的整數(shù);
S---N的尾數(shù)(mantissa),是數(shù)值的有效數(shù)字部分,一般規(guī)定取二進(jìn)制定點(diǎn)純小數(shù)形式。
浮點(diǎn)數(shù)運(yùn)算必須化成規(guī)格化形式。所謂規(guī)格化,對(duì)于原碼尾數(shù)應(yīng)使最高數(shù)字位S 1 =1,如果不是1,且尾數(shù)不是全為0時(shí)就要移動(dòng)尾數(shù)直到S 1 =1,階碼相應(yīng)變化,保證N值不變。如果尾數(shù)是補(bǔ)碼,當(dāng)N是正數(shù)時(shí),S 1 必須是1,而N是負(fù)數(shù)時(shí),S 1 必須是0,才稱為規(guī)格化的形式。
4.數(shù)字編碼
十進(jìn)制數(shù)在機(jī)內(nèi)轉(zhuǎn)換成二進(jìn)制數(shù)時(shí),有時(shí)也以一種中間數(shù)字編碼形式存在,它把每一位十進(jìn)制數(shù)用四位二進(jìn)制編碼表達(dá),每一組只表達(dá)0~9的數(shù)值運(yùn)算時(shí),有專門的電路在每四位二進(jìn)制間按“十”進(jìn)位處理,故稱為二進(jìn)制編碼的十進(jìn)制數(shù)---BCD碼(Binary Coded Decimal)或稱二-十進(jìn)制數(shù)。其編碼種類很多,如格雷碼、余3碼等,最常用的叫8421BCD碼,4個(gè)二進(jìn)制位自左向右每位的權(quán)分別是8、4、2、1。0~9的8421碼與通常的二進(jìn)制一樣進(jìn)位,十分簡(jiǎn)單,當(dāng)計(jì)數(shù)超過9時(shí),需要采取辦法自動(dòng)向十進(jìn)制高位進(jìn)一,即要進(jìn)行“十進(jìn)制調(diào)整”才能得到正確結(jié)果。
5.校驗(yàn)碼
由于器件質(zhì)量不可靠、線路工藝不過關(guān)、遠(yuǎn)距離傳送帶來的干擾或受來自電源、空間磁場(chǎng)影響等因素,使得信息在存取、傳送和計(jì)算過程中難免會(huì)發(fā)生諸如“1”誤變?yōu)椤?”的錯(cuò)誤,計(jì)算機(jī)一旦出錯(cuò),要能及時(shí)檢測(cè)并糾正錯(cuò)誤,其中一種方法是對(duì)數(shù)據(jù)信息擴(kuò)充,加入新的代碼,它與原數(shù)據(jù)信息一起按某種規(guī)律編碼后具有發(fā)現(xiàn)錯(cuò)誤的能力,有的甚至能指出錯(cuò)誤所在的準(zhǔn)確位置使機(jī)器自動(dòng)糾正,能起這種作用的編碼叫“校驗(yàn)碼”(check code)。
奇偶校驗(yàn)碼:
將每個(gè)數(shù)據(jù)代碼擴(kuò)展一個(gè)二進(jìn)位作校驗(yàn)位(parity bit),這個(gè)校驗(yàn)取0還是取1的原則是:若是奇校驗(yàn)(odd parity),編碼是含“1”的個(gè)數(shù)連同校驗(yàn)位的取值在內(nèi)共有奇數(shù)個(gè)“1”;若是偶校驗(yàn)(even parity),連同校驗(yàn)位在內(nèi)編碼里含“1”的個(gè)數(shù)是偶數(shù)個(gè)。
交*校驗(yàn):
計(jì)算機(jī)進(jìn)行大量字節(jié)傳送時(shí)一次傳送幾百甚至更多字節(jié)組成的數(shù)據(jù)塊,如果不僅每一個(gè)字節(jié)有一個(gè)奇偶校驗(yàn)位---稱橫向校驗(yàn),而且全部字節(jié)的同一位也設(shè)置了一個(gè)奇偶校驗(yàn)位---稱縱向校驗(yàn),對(duì)數(shù)據(jù)塊代碼的橫向縱向同時(shí)校驗(yàn),這種情況叫交*校驗(yàn)。
循環(huán)冗余校驗(yàn)碼---CRC碼(Cyclic Redundancy Check):
計(jì)算機(jī)信息傳向遠(yuǎn)方終端或傳到另一個(gè)計(jì)算中心時(shí),信息沿一條通信線路一位位傳送,這種通信方式叫串行通信。循環(huán)冗余碼(簡(jiǎn)稱CRC碼)就是一種檢驗(yàn)?zāi)芰軓?qiáng),在串行通信中廣泛采用的校驗(yàn)編碼。
(1)CRC碼
串行傳送的信息M(X)是一串k位二進(jìn)制序列,在它被發(fā)送的同時(shí),被一個(gè)事先選擇的“生成多項(xiàng)式”相除,“生成多項(xiàng)式”長(zhǎng)r+1位,相除后得到r位余數(shù)就是校驗(yàn)位,它拼接到原k位有效信息后面即形成CRC碼。CRC碼到達(dá)接收方時(shí),接收方的設(shè)備一方面接收CRC碼,一方面用同樣的生成多項(xiàng)式相除,如果正好除盡,表示無信息差錯(cuò),接收方去掉CRC碼后面r位校驗(yàn)位,收下k位有效信息;當(dāng)不能除盡時(shí),說明有信息的狀態(tài)位發(fā)生了轉(zhuǎn)變,即出錯(cuò)了。一般要求重新傳送一次或立即糾錯(cuò)。
(2)CRC碼計(jì)算
傳送信息時(shí)生成CRC碼以及接收時(shí)對(duì)CRC碼校驗(yàn)都要與“生成多項(xiàng)式”相除,這里除法是“模2運(yùn)算”,即二進(jìn)位運(yùn)算時(shí)不考慮進(jìn)位和借位。作模2除法時(shí),取商的原則是當(dāng)部分余數(shù)首位為1時(shí)商取1,反之商取0,然后按模2減,求部分余數(shù)。這個(gè)余數(shù)不計(jì)高位。當(dāng)被除數(shù)逐位除完時(shí),最后余數(shù)的位數(shù)比除數(shù)少一位。該余數(shù)就是校驗(yàn)位。它拼接在有效信息后面組成CRC碼。因?yàn)樾r?yàn)位擴(kuò)充了傳送部分的代碼,所以這是一種基于“冗余校驗(yàn)”的思想的校驗(yàn)辦法。
希望與更多計(jì)算機(jī)等級(jí)考試的網(wǎng)友交流,請(qǐng)進(jìn)入計(jì)算機(jī)等級(jí)考試論壇
更多信息請(qǐng)?jiān)L問:考試吧計(jì)算機(jī)等級(jí)考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |