最近一段時(shí)間,很多同學(xué)專門到計(jì)算機(jī)教研室(文法樓406)來詢問進(jìn)制轉(zhuǎn)換及帶符號(hào)數(shù)的表示方法問題。一對(duì)一的講了好多次,但是肯定還有很多同學(xué),尤其是大四即將參加計(jì)算機(jī)基礎(chǔ)課程清考的同學(xué),對(duì)這塊內(nèi)容可能還有疑問,于是,我把進(jìn)制轉(zhuǎn)換和帶符號(hào)數(shù)的表達(dá)方法分別寫了兩篇文章,以供同學(xué)們復(fù)習(xí)之用。進(jìn)制轉(zhuǎn)換過程中需要注意的幾個(gè)問題已于11月24日在教學(xué)天地的教學(xué)答疑板塊刊登,這篇總結(jié)一下帶符號(hào)數(shù)的表示方法。
在計(jì)算機(jī)中,帶符號(hào)數(shù)的符號(hào)可以和其數(shù)值一樣用一位二進(jìn)制數(shù)來表示,通常,我們把一個(gè)數(shù)的最高位設(shè)定為符號(hào)位,表示數(shù)的正負(fù),正數(shù)用“0”表示,負(fù)數(shù)用“1”表示,其余位來表示數(shù)值的大小。這種在計(jì)算機(jī)內(nèi)連同符號(hào)一起數(shù)字化的數(shù)據(jù)稱為機(jī)器數(shù),計(jì)算機(jī)中常用的機(jī)器數(shù)有原碼,反碼和補(bǔ)碼三種表示。
首先:如何求一個(gè)數(shù)的原碼。
在原碼表示法中,第一位是符號(hào)位,用“0”表示正數(shù),用“1”表示負(fù)數(shù),數(shù)值部分以二進(jìn)制的絕對(duì)值表示?偨Y(jié)為一句話就是:符號(hào)位加數(shù)值位。請(qǐng)看下例:
設(shè)機(jī)器字長(zhǎng)為8位:
(+1) 原= 00000001 (+14) 原= 00001110
(-1) 原= 10000001 (-14) 原= 10001110
其次:如何求一個(gè)數(shù)的反碼。
在反碼表示法中,正數(shù)的反碼與原碼相同;負(fù)數(shù)的反碼符號(hào)位保持不變,數(shù)值位部分按位取反(即,“1”變“0”,“0”變“1”)。這就是為什么叫反碼的原因。試看下例:
(+1)反=(+1) 原= 00000001 (+14) 反=(+14) 原= 00001110
(-1) 反= 11111110 (-14) 反= 11110001
最后,如何求一個(gè)數(shù)的補(bǔ)碼。
在補(bǔ)碼表示法中,正數(shù)的補(bǔ)碼與原碼和反碼相同,也就是說,對(duì)正數(shù)而言,三碼合一。負(fù)數(shù)的補(bǔ)碼在其反碼的基礎(chǔ)上末位加1。請(qǐng)看下例:
假設(shè)機(jī)器字長(zhǎng)還是8位:
(+1)補(bǔ)=(+1)反=(+1) 原= 00000001
(-1)補(bǔ)= 11111111 (注意和(-1)反=11111110 對(duì)比)
(+14) 反=(+14) 原= 00001110
(-14) 反= 11110010 (注意和(-14)反=11110001)
下來看一個(gè)完整的例子。求33和-33的原碼、反碼和補(bǔ)碼
解:(33)D=(100001)B
(33)原=(33)反=(33)補(bǔ)=00100001
(-33)原=10100001
(-33)反=11011110
(-33)補(bǔ)=11011111
大學(xué)計(jì)算機(jī)基礎(chǔ)課程是大學(xué)非計(jì)算機(jī)專業(yè)學(xué)生必修的公共基礎(chǔ)課程,也是學(xué)習(xí)其他計(jì)算機(jī)相關(guān)技術(shù)及課程的基礎(chǔ)。帶符號(hào)數(shù)的表示這一塊大家一定要重負(fù)數(shù)的三種表示形式,它是大學(xué)計(jì)算機(jī)課程中很重要的一個(gè)知識(shí)點(diǎn),也是一個(gè)?嫉狞c(diǎn),無論是期末考試、補(bǔ)考還是清考,這一塊內(nèi)容大家都要認(rèn)真的復(fù)習(xí),一定要多動(dòng)手,多練習(xí),眼過千遍不如手過一遍。 |