




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)表示方法
A2?l數(shù)據(jù)表示方法和運(yùn)算器
A2-2邏輯部件
>2-3控制部件
?\2.1數(shù)據(jù)表示方法和運(yùn)算器
2.±[計算機(jī)中數(shù)據(jù)的表示方法
當(dāng)前的計算機(jī)所采用的存儲器件都是兩態(tài)器件,所以適合于存放二
進(jìn)制數(shù)據(jù)。盡管為了方便起見,也使用其他進(jìn)制,如十進(jìn)制、十六進(jìn)
制,但是在計算機(jī)內(nèi)部數(shù)據(jù)還是以二進(jìn)制的形式存放和處理。二進(jìn)制
只使用了兩個不同的數(shù)字符號,易于用物理器件來實(shí)現(xiàn):在物理世界
中具有兩個穩(wěn)定狀態(tài)的物理器件很多,如晶體管的“截止”與“導(dǎo)通
”、電容的“充電”與“放電”、電壓信號的“高”與“低”、脈沖
的“有”與“無”,電磁單元的“正向磁化”與“反向磁化”等等,
只要規(guī)定其中一種穩(wěn)定狀態(tài)表示“1”,另一種穩(wěn)定狀態(tài)表示“0”,
就可以用來表示二進(jìn)制數(shù)位了。其次,二進(jìn)制的運(yùn)算規(guī)則非常簡單,
易于用電子器件來實(shí)現(xiàn)。數(shù)據(jù)的類型多種多樣,如文件、圖、表、樹
、陣列、鏈表、棧、向量、串、實(shí)數(shù)、整數(shù)、布爾數(shù)、字符等。計算
機(jī)里用到的數(shù)據(jù)類型主要可分為兩類:表示數(shù)量的數(shù)值數(shù)批和年數(shù)值
性的符號數(shù)據(jù)。所有的數(shù)據(jù)都是以二進(jìn)制的形式在計算機(jī)唾處理和存
儲。本節(jié)主要講述數(shù)值數(shù)據(jù)在計算機(jī)里的表示方法?!?/
1?數(shù)值數(shù)據(jù)表示方法
在計算機(jī)中表示數(shù)時,需要考慮以下幾個因素:要表示
的數(shù)的類型(小數(shù)、整數(shù)、實(shí)數(shù)和復(fù)數(shù))、符號如何表示以及
小數(shù)點(diǎn)的位置;可能遇到的數(shù)值范圍;數(shù)值精確度;數(shù)據(jù)存
儲和處理所需要的硬件代價。計算機(jī)中表示數(shù)值符號的方法
是占用一位二進(jìn)制位,1表示負(fù)號、0表示正號。常用的數(shù)值
數(shù)據(jù)表示格式有兩種,根據(jù)小數(shù)點(diǎn)的位置是固定不變還是浮
動變化的分為定點(diǎn)格式和浮點(diǎn)格式。一般來說,定點(diǎn)格式容
許的數(shù)值范圍有限,但要求的處理硬件比較簡單。而浮點(diǎn)格
式容許的數(shù)值范圍很大,但要求的處理硬件比較復(fù)雜。
(1)定點(diǎn)數(shù)的表示方法
所謂定點(diǎn)格式,即約定機(jī)器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是
固定不變的。由于約定在固定的位置,小數(shù)點(diǎn)就不再使用記
號“.”來表示。原理上講,小數(shù)點(diǎn)位置固定在哪匕位都可
以,但是通常將數(shù)據(jù)表示成純小數(shù)或純整數(shù)?!?/p>
例如用一個n+1位字來表示一個定點(diǎn)數(shù)x,其中一位x0用
來表示數(shù)的符號,其余位數(shù)代表它的量值。為了將整個n+1
位統(tǒng)一處理起見,符號位X。放在最左位置,并用數(shù)值0和1
分別代表正號和負(fù)號,這裸,對于任意定點(diǎn)數(shù)X=X0X]X2...Xn,
在定點(diǎn)機(jī)中可表示為如下形式:
號口集數(shù)X表示的是純小數(shù),那么小數(shù)點(diǎn)位于X。和X]之間。當(dāng)
X°X]X2…Xn各位均為0時,數(shù)X的絕對值最小,當(dāng)各位均為1時,
X的絕對宿最大,故數(shù)的表示范圍為g|x|<1—2-n
如果數(shù)X表示的是純整數(shù),那么小數(shù)點(diǎn)位于最低位X。的
右邊,此時數(shù)X的表示范圍為OW|x|<2n-l,目前計算機(jī)
中多采用定點(diǎn)純整數(shù)表示,因此將定點(diǎn)數(shù)表示的運(yùn)算簡稱
為整數(shù)運(yùn)算。
(2)浮點(diǎn)數(shù)的表示方法
采用浮點(diǎn)表示法表示的數(shù)據(jù)叫做浮點(diǎn)數(shù),采用浮點(diǎn)數(shù)
進(jìn)行運(yùn)算的機(jī)器叫做“浮點(diǎn)機(jī)”。浮點(diǎn)數(shù)是指小數(shù)點(diǎn)位置
可以改變的數(shù),顯然浮點(diǎn)數(shù)可用來表示帶符號的實(shí)數(shù)。例
如:表示8位字長的二進(jìn)制浮點(diǎn)數(shù)可以寫成
士0.10110101X2±1U/.
I一尾數(shù)一It階碼.
.任意一個十進(jìn)制數(shù)N可以寫成N=1OZXX,同
樣,在計算機(jī)中一個任意進(jìn)制數(shù)N可以寫成N=Bz
XX其中X稱為浮點(diǎn)數(shù)的尾數(shù),是一個純小數(shù)。z是
比例因子的指數(shù),稱為浮點(diǎn)的指數(shù),是一個整數(shù)。
比例因子的基數(shù)B是一個常數(shù),一般規(guī)定只為2,8或
16o在機(jī)器中表示一個浮點(diǎn)數(shù)時,一是要給出尾數(shù),
用定點(diǎn)小數(shù)形式表示。尾數(shù)部分給出有效數(shù)字的位
數(shù),因而決定了浮點(diǎn)數(shù)的表示精度。二是要給出指
數(shù),用整數(shù)形式表示,常稱為階碼,階碼指明小數(shù)
點(diǎn)在數(shù)據(jù)中的位置,因而決定了浮點(diǎn)數(shù)的表示范圍。
浮點(diǎn)數(shù)也要有符號位。因此一個機(jī)器浮點(diǎn)數(shù)應(yīng)當(dāng)由
階碼和尾數(shù)及其符號位組成:,K
Z]Z...Zn/ZX.X,……x.,x
2n%[nn
除符一階碼一數(shù)符一尾數(shù)一
32位浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式為:
313023220
32位浮點(diǎn)數(shù)F<-Z—><-X—>
64位浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式為:
不論是32位浮點(diǎn)數(shù)還是64位浮點(diǎn)數(shù),規(guī)定基數(shù)B=2。由于基
數(shù)2是固定常數(shù),不必用顯示方式來表示它。
32位的浮點(diǎn)數(shù)中,F(xiàn)是浮點(diǎn)數(shù)的符號位,占1位,安排在最
高位,F(xiàn)=0表示正數(shù),F(xiàn)=1表示負(fù)數(shù)。X是尾數(shù),放在低位部
分,占用23位,用小數(shù)表示,小數(shù)點(diǎn)放在尾數(shù)域的最前面。Z
是階碼,占用8位,階符采用隱含方式,即采用移碼方法來表
示正負(fù)指數(shù)。移碼方法對兩個指數(shù)大小的比較和對階操作都比
較方便,因為階碼域值大者其指數(shù)值也大。采用這種方式時,
將浮點(diǎn)數(shù)的指數(shù)值z變成階碼Z時,應(yīng)將指數(shù)z加上一個固定的
偏移值127(01111111),BPZ=z+127o一個規(guī)格化的32位浮點(diǎn)
數(shù)X的值可表示為X=(—1)FX(1.X)X2ET27
其中尾數(shù)域所表示的值是LXo因為規(guī)格化的浮點(diǎn)數(shù)的尾
數(shù)域最左位也即最高有效位總是1,故這一位經(jīng)常不予存儲,
而認(rèn)為隱藏在小數(shù)點(diǎn)的左邊。r
64位的浮點(diǎn)數(shù)中符號位1位,階碼域11位,尾數(shù)域52位,指數(shù)偏移值
*1021因此規(guī)格化的64位浮點(diǎn)數(shù)X的真值為
x=(—1)FX(1.X)X2E—1O23z=E-1023
一^不對浮點(diǎn)數(shù)的表示作出明確規(guī)定,同一個浮點(diǎn)數(shù)的表示就不是惟一的。
例如0.5也可以表示成0.05X101,50X10—2等等。為了提高數(shù)據(jù)的表
示精度,當(dāng)尾數(shù)的值不為0時,其絕對值應(yīng)N0.5,即尾數(shù)域的最高有效
位應(yīng)為1,否則要以修改階碼同時左右移小數(shù)點(diǎn)的辦法,使其變成這一要
求的表示形式,這稱為浮點(diǎn)數(shù)的規(guī)格化表示。
當(dāng)一個浮點(diǎn)數(shù)的尾數(shù)為0,不論其階碼為何值,或者當(dāng)階碼的值遇到比它能
表示的最小值還小時,不管其尾數(shù)為何值,計算機(jī)都把該浮點(diǎn)數(shù)看成零
值,稱為機(jī)器零。
浮點(diǎn)數(shù)所表示的范圍遠(yuǎn)比定點(diǎn)數(shù)大的多。假設(shè)(考慮符號位)機(jī)器中
的數(shù)由8位二進(jìn)制數(shù)表示時:在定點(diǎn)機(jī)中這8位全部用來表示有效數(shù)字(包
括符號);在浮點(diǎn)機(jī)中若階符階碼占3位,數(shù)符尾數(shù)占5位。在此情況下,
若只考慮正數(shù)值,定點(diǎn)機(jī)小數(shù)表示的數(shù)的范圍是0.0000000到
0.1111111,相當(dāng)于十進(jìn)制數(shù)的0到127,而浮點(diǎn)機(jī)所能表示的數(shù)的范圍
是2-UX0.0001至)211X0.1111,相當(dāng)于十進(jìn)制數(shù)的1/128?7.5。顯
然,都用8位,浮點(diǎn)機(jī)能表示的數(shù)的范圍比定點(diǎn)機(jī)大得多。’,
二,臺計算機(jī)中究竟采用定點(diǎn)表示還是浮點(diǎn)表示,要根據(jù)計算
桃的使用條件來確定。一般在高檔微機(jī)以上的計算機(jī)中同時采用
4足點(diǎn)、注點(diǎn)表示,由使用者進(jìn)行選擇。而單片機(jī)中多采用定點(diǎn)表
/JNo
【例2.1】若浮點(diǎn)數(shù)X。的二進(jìn)制存儲格式為(43240000)16,求其
32位浮點(diǎn)數(shù)的十進(jìn)制值。
解:將16進(jìn)制數(shù)展開后,可得二制數(shù)格式為
01000011001001000000000000000000
(8位)意數(shù)(23位)
指數(shù)Z=階碼一127=10000110—01111111=00000111=(7)10o
包括隱藏位1的尾數(shù)Lx=l.01001000000000000000000=
1.010010
于是有%
FZ
Xo=(—1)X1.XX2=+(1.010010)X2Z=+10100100
=(187)]0。''一
【例2.2]將十進(jìn)制數(shù)16.59375轉(zhuǎn)換成32位浮點(diǎn)
、數(shù)的二進(jìn)制格式來存儲。
.解:首先分別將整數(shù)和分?jǐn)?shù)部分轉(zhuǎn)換成二進(jìn)
制數(shù):16.59375=10000.10011移動小數(shù)點(diǎn),
使其在第1位和第2位之間
10000.10011=1.000010011X24z=4
所以:
F=0,E=4+127=131,X=000010011
則得到的32位浮點(diǎn)數(shù)的二進(jìn)制存儲格式為:
01000001100001001100000000000000=
(4184C000)打“
⑶定點(diǎn)數(shù)據(jù)的編碼方法
①、金直與機(jī)器碼
機(jī)器碼是數(shù)在計算機(jī)中的表示形式。對于數(shù)值數(shù)據(jù)而言,
無論以定點(diǎn)形式表示或是以浮點(diǎn)形式表示,都需要通過某
種編碼方法,以計算機(jī)所能處理的0和I二進(jìn)制位來表示
其數(shù)值大小。通常一個數(shù)值數(shù)據(jù)的機(jī)內(nèi)表示形式稱為其機(jī)
器碼,而一個機(jī)器碼所代表的數(shù)值稱為該機(jī)器碼的真值。
計算機(jī)中只有機(jī)器碼,不存在數(shù)的真值。
假設(shè)機(jī)器碼的寬度為n,最高位為符號位,下面分別介紹
實(shí)際應(yīng)用中常見的4種機(jī)器碼編碼方法:原碼、反碼、補(bǔ)
碼和移碼。
②原碼表示法
定點(diǎn)整數(shù)原碼表示法
定點(diǎn)整數(shù)原碼的定義如下所示:
5^=X0WX<2nT
X-2nT<XW0
?靛義可以看出,正整數(shù)的原碼就是其自身,負(fù)
整數(shù)的原碼只需把其絕對值的原碼的符號位置為1即
可。(用0表示正號,用1表示負(fù)號)。原碼表示方法
的定點(diǎn)整數(shù)的取值范圍為一QnT—)SXS2nT—1。
注意在原碼表示法中,零有正零和負(fù)零之分。[+0]=
0000...0,[―0]=1000…0。
定點(diǎn)小數(shù)的原碼表示法「
定點(diǎn)小數(shù)原例的定'義如下所示:
[X]原=X0<X<l
[X]原=1—X-l<x<o:一,
滅的純小數(shù)的原碼就是其自身,而負(fù)的純小數(shù)的原碼
冰以逋過把其絕對值的原碼的符號位置1來得到。其取
'值范圍為一(1—2-(nT))SXS(l—2-(n-1))。綜上可以看出
一個數(shù)的原碼是由符號位加上數(shù)值位絕對值組成,符號
位為0代表正數(shù),符號位為1代表負(fù)數(shù)。由于0有+0和一
0兩種表示方法,n位二進(jìn)制數(shù)可以表示2n—1個原碼。
用原碼實(shí)現(xiàn)乘除運(yùn)算規(guī)則較簡單,但做加減運(yùn)算不方
便。原碼表示法的一個主要優(yōu)點(diǎn)在于其真值和機(jī)器碼表
示之間對應(yīng)關(guān)系很直觀,容易轉(zhuǎn)換。
③補(bǔ)碼表示法
定點(diǎn)整數(shù)的補(bǔ)碼表示
定點(diǎn)整數(shù)補(bǔ)碼的定義如下所示:3F
兇補(bǔ)=xO0X<2nT-,
[X]補(bǔ)=2n+X-2n-l<X<0
正整數(shù)的補(bǔ)碼就是其自身,負(fù)整數(shù)的補(bǔ)碼可以通過對
焉色對值部分逐位求反,并在最低位加1求得。同樣,
b在補(bǔ)碼表示法中,符號位為0表示正號,為1表示負(fù)號。I
其表示的真值X的范圍為一2nTWXW2nT—1。在補(bǔ)碼
表示中,0的機(jī)器碼是惟一的,沒有+0和一o之分。
定點(diǎn)小數(shù)的補(bǔ)碼表示
定點(diǎn)小數(shù)補(bǔ)碼的定義如下所示:
兇補(bǔ)=X0<X<l
[X]補(bǔ)=2+X-1<X<O
定點(diǎn)小數(shù)的補(bǔ)碼求解方法與定點(diǎn)整數(shù)的補(bǔ)碼求解方法相
類似。其表示的真值X的范圍為一1WXW1—25-1)。當(dāng)n
=8時,一1的定點(diǎn)小數(shù)補(bǔ)碼表示為:10000000,而用定
點(diǎn)整數(shù)的補(bǔ)碼表示一1,則為11111111。
在補(bǔ)碼表示方法中,。的編碼是惟一的,所以n稀二說
制數(shù)可以表示2n個補(bǔ)碼。,一一
③反碼表示法
定直整數(shù)的反碼表示
定點(diǎn)整鎏反碼的定義如下所示:
[乂]反=X0<X<2n-1
[X]反=(211—1)+X-2n-1<X<0
同樣,正整數(shù)的反碼就是其自身,而負(fù)整數(shù)的反碼可
以通過對其絕對值逐位求反來求得。在反碼表示法中
,符號位仍然用0表示正號,1表示負(fù)號。其表示的真
值范圍與原碼相同:一(2廣i—l)SXW2n-i—l。數(shù)值0
用反碼表示亦有+0和一0之分。當(dāng)n=8時,[+0]反=
00000000,[—0]反=11111111。
定點(diǎn)小數(shù)的反碼表示
定點(diǎn)小數(shù)反碼的定義如下所示:
兇反=X0<X<l,
[X]反=(2—2-n+i)+x-1<X<O
定雙小數(shù)的反碼求解方法類似定點(diǎn)整數(shù)的反碼求解方法。其表
小為真值的取值范圍為:一(1—2-(n-1))WXW(1—2-(n-l))。反碼
表示法中,由于0占有了兩個不同的編碼,所以,n位二進(jìn)制數(shù)
可以表示2廣1個反碼。
④移碼表示法
定點(diǎn)整數(shù)的移碼表示
[X]移=2nT+X—241<X<2n-1
定點(diǎn)小數(shù)的移碼表示
[X]移=1+X-1<X<1
移碼的符號位與其他三種編碼不同,用1表示正號而0表示負(fù)號。
移碼的求法其實(shí)也很簡單,把其補(bǔ)碼的符號位直接變反即可。
所以在移碼表示法中,0也有惟一的表示方法:10000000(n=8)
【例2.3]設(shè)機(jī)器碼長度為8,求X=(—6)10的原碼、林碼、/
反碼和移碼。?
解::[X]原碼=27-(-110)=10000000+110=10000110
[X]補(bǔ)碼=28+(—110)=10000000—110=11111010
[X]反碼=(28—1)+(-110)=11111111—110=
11111001
[X]移碼=27+(—110)=10000000+110=01111010
【例2.4]設(shè)機(jī)器碼長度為8,求X=(-0.3125)10
=(-0.0101)2的原碼、補(bǔ)碼、反碼和移碼。
解:[X]原碼=1-X=L0-(-0.0101)=1.0101=
10101000
[X]補(bǔ)碼=2+X=10.0+(-0.0101)=1.1011=
11011000
—7
[X]反碼=(2—2)+X=(10.0-0.0000001)+(-
0.0101)=11010111
[X]移碼=1+X=l.0+(-0.0101)=0.1011=
01011000.
實(shí)際上求某個數(shù)的原碼、補(bǔ)碼、反碼和移碼時不僅可以
利用其定義式采求解,也可以通過這4個編碼間的相
工關(guān)系來求得。比如移碼就可以通過把補(bǔ)碼的符號位
變反來求,而對于正數(shù)來講其原碼、補(bǔ)碼和反碼是完
全相同的;一個負(fù)數(shù)的補(bǔ)碼也可以很容易地從其原碼
推知:除符號位外,各位取反,末位再加1即可。
(4)浮點(diǎn)數(shù)據(jù)的編碼方法
計算機(jī)內(nèi)部浮點(diǎn)數(shù)據(jù)表示成如下形式:
FYZX
Fx是尾數(shù)的符號位,0表示正號而1表示負(fù)號;Z是階碼,通常
用移碼表示;X是定點(diǎn)小數(shù)形式的尾數(shù),一般用補(bǔ)碼或原碼表示,
'[例2、5]某浮點(diǎn)數(shù)機(jī)器碼10位,基數(shù)為2,階碼用4位移碼表示,
尾數(shù)5位用補(bǔ)碼表示,符號位1位。求21。義0.1101的編碼。
解:,(
符號位Fx=0
階碼Z=(10)移碼=1010
尾數(shù)X=(0.1101)補(bǔ)碼=11010
則其編碼為0101011010
【例2.6]某浮點(diǎn)數(shù)機(jī)器碼為17位,基數(shù)為2,階碼用4位移碼
表示,尾數(shù)用12位補(bǔ)碼表示,符號位1位。求一2.75的浮點(diǎn)編碼
形式。
解:首先把-2.75表示成浮點(diǎn)形式:
(10
(-2.75)10=(-0.6875X22)]0=(—0.1O11)2X2^
rFx=1]
Z=(10)爬=1010
Xf(IN1o11)補(bǔ)碼=010100000000
N編碼為11010010100000000
,同一個浮點(diǎn)數(shù)可以有許多種不同的編碼表示(改變其階碼),所以需要對浮點(diǎn)
數(shù)進(jìn)行規(guī)格化處理,以統(tǒng)一其形式,同時提高數(shù)據(jù)的表示精度。
規(guī)格化處理(基數(shù)為2)
①尾數(shù)部分以純小數(shù)形式表示,其絕對值應(yīng)滿足0.5<|X|<lo若不滿足該條
件,則需要修改階碼并對尾數(shù)進(jìn)行移位,以使尾數(shù)滿足該條件;
②當(dāng)尾數(shù)為正時,無論其使用原碼還是補(bǔ)碼表示,X應(yīng)滿足條件:0.5WX<1
以二進(jìn)制形式表示為X=0.Ixx...x(x為0或1);
③用原碼表示的負(fù)尾數(shù),X滿足一l<xs—0.5,以二進(jìn)制形式表示為M=l.1
xx...x(x為0或1);
④以補(bǔ)碼表示的負(fù)尾數(shù),X滿足-—0.5,以二進(jìn)制形式表示為X=
1.Oxx...x(x為0或1);
從上面的討論可以看出,如果規(guī)格化的尾數(shù)用原碼表示,則其最高位一定為1
如果改用補(bǔ)碼表示,則尾數(shù)的最高位與其符號位相反,即為0。,4,
2.符號數(shù)據(jù)的表示方法
‘現(xiàn)代計算機(jī)不僅處理數(shù)值領(lǐng)域的問題,而且處理大量非數(shù)值領(lǐng)域的問題。這
、樣r,必然要引入文字、字母以及某些專用符號,以便表示文字語言、邏
輯語言管信息。例如人機(jī)交換信息時使用英文字母、標(biāo)點(diǎn)符號、十進(jìn)制數(shù)以
及諸如$,%,+等符號。然而數(shù)字計算機(jī)只能處理二進(jìn)制數(shù)據(jù),因此,上述
信息應(yīng)用到計算機(jī)中時,都必須編寫成二進(jìn)制格式的代碼,也就是字符信息
用數(shù)據(jù)表示,稱為符號數(shù)據(jù)。最常見的編碼格式為ASCH碼和EBCDIC碼。
(1)ASCII碼
目前國際上普遍采用的一種字符系統(tǒng)是七單位的ASCII碼(美國國家信息交換標(biāo)準(zhǔn)
字符碼),它包括10個十進(jìn)制數(shù)碼,26個英文字母和一定數(shù)量的專用符號,如$,
%,+,=等,總共128個元素,因此二進(jìn)制編碼需要7位,加上一個偶校驗
位,共8位,剛好為一個字節(jié)。表2—1列出了七單位的ASCII碼字符編碼表。
ASCII碼規(guī)定8個二進(jìn)制位的最高一位為0,余下的7位可以給出128個編碼,
表示128個不同的字符。其中95個編碼,對應(yīng)著計算機(jī)終端能輸人并且可以顯
示的95個字符,打印機(jī)設(shè)備也能打印這95個字符,如大小寫各26個英文字母,
0?9這10個數(shù)字符,通用的運(yùn)算符和標(biāo)點(diǎn)符號+,一,*,\,>,=,〈等等,
另外的33個字符,其編碼值為0?31和127,則不對應(yīng)任何一個可以顯示或打印
的實(shí)際字符,它們被用作控制碼,控制計算機(jī)某些外圍設(shè)備的工作特性和物
些計算機(jī)軟件的運(yùn)行情況。.一/
ra算機(jī)里的存儲和傳送單位通常使用Byte(lByte=8bit),所以
7位的ASCII碼也用一個字節(jié)來表示。ASCII編碼和128個字符的對
應(yīng)關(guān)系如表2.1所示。表中編碼符號的排列次序為b7b6b5b4
b3b2b1b0,最高1位沒有使用,通常填0;也可以把它用作校
驗位或者用某擴(kuò)展字符集。表中未給出,列b6b5b4為高位部
分,行b3b2b1b0為低位部分。ASCII的字符編碼表一共有24
=16行,23=8列。低4位編碼b3b2b1b0用作行編碼,而b6
b5b4高3位用作列編碼。值得注意的一點(diǎn)是數(shù)字“0”到“9”的
編碼:
它們都位于3列(011),從0行(0000)排列到9行(1001),即“0”的
ASCII碼為(0H0000)2=(30)i6,"9"的ASCII碼為(0111001)2=
(3汕6。/
把高3位屏蔽掉,低4位恰是“0”?“9”的二進(jìn)制碼??梢栽俪觯?/p>
十進(jìn).,
制的8421碼可以去掉b6b5b式=011)而得到。這個特點(diǎn)庵得在/
數(shù)字符號(ASCII碼)與數(shù)字值(二進(jìn)制碼)之間進(jìn)行轉(zhuǎn)換非常方便。
表2—1ASCH字符編碼表
000001010Oil1001011101
0000NUL,DELSP@pp
0001SOHDC1i1AQaq
0010STXDC2//2BRbr
0011ETXDC3#3CScs
0100EOTDC4$4DTdt
0101ENQNAK%5EUeu
0110ACKSYN&6FVfV
________________
0111DELETB7GWgV
1000BSCAN(8HXhX
1001HTEM)9IYiy
1010LFSUB*JZjz
T-
1011VTESC+,K[k
1100FFFS<L\
?7
■m
1101CRGS—M]
L___________
^
1110SORS>Nn
;
,
1111SIUS/90__0E
字容串南旨連續(xù)的一串字符,通常方式下,它們占用主存中連
續(xù)的多個字節(jié),每個字節(jié)存一個字符。當(dāng)主存字由2個或4個字
節(jié)組成時,在同一個主存字中,既可按從低位字節(jié)向高位字節(jié)
的順序存放字符串內(nèi)容,也可按從高位字節(jié)向低位字節(jié)的次序
順序存放字符串內(nèi)容。這兩種存放方式都是常用方式,不同的
計算機(jī)可以選用其中任何一種。例如下述字符串:_______
圖2-1字符串在主存中的存放
、IF-A>B-ELSE-READ(C)」就可以按圖
2二1所示從高位字節(jié)到低位字節(jié)依次存放在主存中。其中主
存單元長度由4個字節(jié)組成。每個字節(jié)中存放相應(yīng)字符的
ASCII值,文字表達(dá)式中的空格“一”在主存中也占一個
字節(jié)的位置。因而每個字節(jié)分別存放十進(jìn)制的73,70,32,
65,62,66,32,69,76,83,69,32,82,69,65,68,
40,67,41,32o
(2)EBCDIC碼
EBCDIC(ExtendedBinaryCodedDecimalInterchangeCode)即所
謂擴(kuò)展的二/十進(jìn)制交換碼。采用8bit編碼來表示一個字符,
共可以表示28=256個不同符號,但EBCDIC中并沒有使用全
部編碼,只選用了其中一部分,剩下的保留作擴(kuò)充用。
EBCDIC碼常用于IBM大型機(jī)中。在EBCDIC碼制中,數(shù)字
“0”?“9”的高4位編碼都是1111,而低4位編碼則依次為
0000到1001。把高四位屏蔽掉,也很容易實(shí)現(xiàn)從EBCDIC碼
到二進(jìn)制數(shù)字值的轉(zhuǎn)換?!?
3.W學(xué)的表示方法
\(1漢字的輸入編碼
為工能直接使用西文標(biāo)準(zhǔn)鍵盤把漢字輸入到計算機(jī),就必須為
漢字設(shè)并相應(yīng)的輸入編碼方法。當(dāng)前采用的方法主要有以下三
類:
數(shù)字編碼常用的是國標(biāo)區(qū)位碼,用數(shù)字串代表一個漢字輸
入。區(qū)位碼是將國家標(biāo)準(zhǔn)局公布的6763個兩級漢字分為94個
區(qū),每個區(qū)分94位,實(shí)際上把漢字表示成二維數(shù)組,每個漢字
在數(shù)組中的下標(biāo)就是區(qū)位碼。區(qū)碼和位碼各兩位十進(jìn)制數(shù)字,
因此輸入一個漢字需按鍵四次。例如“中”字位于第54區(qū)48位,
區(qū)位碼為5448。
數(shù)字編碼輸入的優(yōu)點(diǎn)是無重碼,且輸入碼與內(nèi)部編碼的轉(zhuǎn)換比
較方便,缺點(diǎn)是代碼難以記憶。,
拼音碼拼音碼是以漢語拼音為基礎(chǔ)的輸入方法。凡學(xué)垂?jié)h
語拼音的人,不需訓(xùn)練和記憶,即可使用。但漢字同音器太
多,輸入重碼率很高,因此按拼音輸入后還必須進(jìn)代同音字選
擇,影響了輸入速度?!?/p>
國形編碼字形編碼是用漢字的形狀來進(jìn)行的編碼。漢字總數(shù)雖多,但
是由一筆廠一劃組成,全部漢字的部件和筆劃是有限的。因此,把漢字
的筆戈1部件用字母或數(shù)字進(jìn)行編碼,按筆劃的順序依次輸入,就能表示
一個漢字。例如五筆字型編碼是最有影響的一種字形編碼方法。
除了上述三種編碼方法之外,為了加快輸入速度,在上述方法基礎(chǔ)上,
發(fā)展了詞組輸入、聯(lián)想輸入等多種快速輸入方法。但是都利用了鍵盤
進(jìn)行“手動”輸入。理想的輸入方式是利用語音或圖像識別技術(shù)“自動”
將拼音或文本輸入到計算機(jī)內(nèi),使計算機(jī)能認(rèn)識漢字,聽懂漢語,并將
其自動轉(zhuǎn)換為機(jī)內(nèi)代碼表示。目前這種理想已經(jīng)成為現(xiàn)實(shí)。
(2)漢字的存儲(漢字內(nèi)碼)
漢字內(nèi)碼是用于漢字信息的存儲、交換、檢索等操作的機(jī)內(nèi)代碼,一般
采用兩個字節(jié)表示。英文字符的機(jī)內(nèi)代碼是七位的ASCH碼,當(dāng)用一個字
節(jié)表示時,最高位為“0”。為了與英文字符能相互區(qū)別,漢字機(jī)內(nèi)代碼
中兩個字節(jié)的最高位均規(guī)定為“1”。例如漢字操作系統(tǒng)CCD0S中使用的
漢字內(nèi)碼是一種最高位為“1”的兩字節(jié)內(nèi)碼。
有些系統(tǒng)中字節(jié)的最高位用于奇偶校驗位,這種情況下用三個字節(jié)表示
漢字內(nèi)碼?!觯?
(3)漢字的輸出(漢字字模碼)
、字模碼是用點(diǎn)陣表示的漢字字形代碼,它是漢字的輸
?出彤據(jù)漢字輸出的要求不同,點(diǎn)陣的多少也不同。
簡易型漢字為16X16點(diǎn)陣,提高型漢字為24X24點(diǎn)陣、
32X32點(diǎn)陣,甚至更高。因此字模點(diǎn)陣的信息量是很大的,
所占存儲空間也很大。以16X16點(diǎn)陣為例,每個漢字要
占用32個字節(jié),國標(biāo)兩級漢字要占用256K字節(jié)。因此字模
點(diǎn)陣只能用來構(gòu)成漢字庫,而不能用于機(jī)內(nèi)存儲。字庫中
存儲了每個漢字的點(diǎn)陣代碼。當(dāng)顯示輸出或打印輸出時才
檢索字庫,輸出字模點(diǎn)陣,得到字形。圖2—2示出了“大”
字的點(diǎn)陣及編碼。注意,漢字的輸入編碼、漢字內(nèi)碼、字
模碼是計算機(jī)中用于輸入、內(nèi)部處理、輸出三種不嗅途
的編碼,不要混為一談。.??等,/
圖2—2漢字的字模點(diǎn)陣及編碼
4?校驗碼
元件故褲、噪聲干擾等各種因素常常導(dǎo)致計算機(jī)在處理信息過程中出現(xiàn)
錯誤。例如將1位x從部件A傳送到部件B,可能由于傳送信道中的噪聲干
擾而受到破壞,以至于在接收部件B收到的是而不是X。為了防止這種錯
誤,可將信號采用專門的邏輯線路進(jìn)行編碼以檢測錯誤,甚至校正錯誤
通常的方法是,在每個字上添加一些校驗位,用來確定字中出現(xiàn)錯誤的
位置。計算機(jī)中常用這種檢錯或糾錯技術(shù)進(jìn)行存儲器讀寫正確性或傳輸
信息的檢驗。這里僅介紹檢錯碼中的奇偶校驗碼。
最簡單且應(yīng)用廣泛的檢錯碼是采用一位校驗位的奇校驗或偶校驗。設(shè)X=(x°
X1...Xnj)是一個n位字,則奇校驗位定義為C=xox1...xn_1
式中十代表按位加,表明只有當(dāng)X中包含有奇數(shù)個1時,才能使=1,即C=
Oo
同理,偶校驗位C定義為C=X0X]…Xn」即X中包含偶數(shù)個1時,才使C=0。
假設(shè)一個字X從部件A傳送到部件B。在源點(diǎn)A,校驗位C可用上面公式算
出來,并合在一起將(x°xi…x31C)送到B。假設(shè)在B點(diǎn)真正接收到的是
X=(xox\...xn,C1),然后計算F=(x0x\...xnlC'M:F=1,意
味著收到島信息看錯,例如(X。X]…x,)中正巧有一也變“反”時就會
出現(xiàn)這種情況。若F=0,表明X字傳邃正確。奇偶校驗可提供單,個錯誤
檢測,但無法檢測多個錯誤,更無法識別錯誤信息的位置。>J
【例2.7]已知下表中左面一欄有5個字節(jié)
而數(shù)據(jù)。請分別是用奇校驗和偶校驗進(jìn)行編碼,
填在中間一欄和右面一欄。
解:假定最低一位為校驗位,其余高8位為
數(shù)據(jù)位,列表如下。從中看出,校驗位的值取。
還星取是由數(shù)據(jù)位中1的個數(shù)決定的一
IWI偶校驗編碼I奇校驗編碼I
10101010101010100101010101
01010100010101001010101000
00000000000000000000000001
01111111011111111011111110
11111111111111110111111111'
2.1.2計算機(jī)中算術(shù)運(yùn)算和邏輯運(yùn)算
卜三進(jìn)例數(shù)的算術(shù)運(yùn)算
(1)定點(diǎn)數(shù)運(yùn)算
①定點(diǎn)數(shù)加法/減法運(yùn)算
定點(diǎn)數(shù)的加法和減法運(yùn)算使用補(bǔ)碼較為方便。對于定點(diǎn)小數(shù)
的運(yùn)算規(guī)則如下:
加法:良+丫[補(bǔ)={[X]補(bǔ)+[y]補(bǔ)}mod2
減法:[X—丫]補(bǔ)={[X]補(bǔ)+[―y]補(bǔ)}mod2
當(dāng)運(yùn)算結(jié)果超過了定點(diǎn)數(shù)的表示范圍時,則產(chǎn)生溢出
(Overflow),常用的溢出檢測機(jī)制主要有以下兩種:
進(jìn)位判決法:
令C-]表示次高位(最高數(shù)值位)向最高位(符號位)的也
位,加則表示符號位的進(jìn)位,則結(jié)果是否溢出的判決表加
表2—2所示,即1=1時溢出。這里,表示異或廣
表2—2溢出的判決表
CnOverflow=CnCn_1
00無溢出
01
10
1無溢出
【例2,.8]X=(100)=(01100100),,Y=(50)=(00110010),,
JiLUn乙JiLUn乙
求3+Y。4
解:,[X]補(bǔ)=01100100,[y]補(bǔ)=00110010
N[X+Y*=[X]補(bǔ)+[y]補(bǔ)=10010110
CC1=1,表示結(jié)果溢出。
【例2.9]X=(-100)10—(-01100100)2,Y=(—5O)]o=(一
00110010),,求X—Y。
解:[X]補(bǔ)=10011100,[—y]補(bǔ)=00110010
[X—丫]補(bǔ)=[幻補(bǔ)+[—Y]補(bǔ)=11001110
CnCn-i=0,因此沒有溢出。
雙符號位判決法:
采用兩位二進(jìn)制位來表示符號位:00?正號,11?負(fù)號,根據(jù)運(yùn)
算結(jié)果的符號位也可以判定其是否溢出,其判決表如表2“3所親。
表2—3雙符號位判決表
運(yùn)算結(jié)果的Overflow運(yùn)算結(jié)果的符Overflow
符號位號位
0010
0111J無溢出
【例2.10]X=(1OO)1O=(O11OO1OO)2,Y=(5O)]o=(OOl10010)2,
'求XCY1
[X]#=001100100[Y]補(bǔ)=000110010
[X+Y];=[X]#+[y]#=010010110
其符號位為01,說明結(jié)果溢出。
②定點(diǎn)數(shù)乘法運(yùn)算
在作定點(diǎn)數(shù)的乘法運(yùn)算時采用原碼比較方便。通常使用原碼一
位乘法來求兩個定點(diǎn)數(shù)的乘積。
運(yùn)算規(guī)則:
乘積的符號位等于乘數(shù)和被乘數(shù)的符號位進(jìn)行異或;
乘積的值等于兩數(shù)絕對值之積,即乘數(shù)和被乘數(shù)的絕對值進(jìn)行
移彳立相加。/
算法:(用絕對值進(jìn)行運(yùn)算)二
令X表示被乘數(shù),Y表示乘數(shù),P表示部分積以點(diǎn)放中佝結(jié)
果,flag用作列別位,count用作計數(shù)。/
令^=0;count=0;flag=0;
p和Y一起右移一位(P為高位部分,Y為低位部分),
右移時P的最高位補(bǔ)0,P的最低位移入Y的最高位,
Y的最低位移入到flag中;
如果flag=l同P=P+X,否則P不變;
count=count+1,如果count超過Y的位數(shù)則運(yùn)算停
止,否則轉(zhuǎn)到上述第2步繼續(xù)執(zhí)行;
P和Y的內(nèi)容就是所求乘積的絕對值,其中P存放積
的高位,而Y存放積的低位。
【例2.11]X=(10)10=(1010)2,Y=(-6)10=(-
0110)2,求X,Yo
解:「
[|X|]jg=1010,[|Y|]原=0110'
乘積的符號位S=01=1。4
t'一表2—4定點(diǎn)數(shù)乘法運(yùn)算表
熱什動比二
部分積p乘數(shù)Y別位counter
Flag
0000011000
0000001101
0000000112
P+X1010
右移0101000013
P+X1111
0111100004
__r________
001111000一5,
則所.得乘積為(一oounoo)2=(—GO)]。
③麓點(diǎn)數(shù)除法運(yùn)算
定點(diǎn)數(shù)的除法通常也常用原碼進(jìn)行。下面介紹常用的加減交替法求兩
個數(shù)X和Y的商。運(yùn)算規(guī)則:
商的符號位同定點(diǎn)數(shù)原碼乘法的處理方法,由兩數(shù)的符號位進(jìn)行異或;
兩數(shù)的絕對值部分進(jìn)行相除;
算法:(求X/Y,設(shè)X、Y的數(shù)值部分長度為N)
令及R=X,counter=0;
R=R-Y;若R為正則商1,否則商0;
R左移一位,counter=counter+1;
若上一次商為^l」R=R—Y,否則R=R+Y;j
R為正則商1,否則商0;」.'
若R=0或者counterNN則結(jié)束,否則轉(zhuǎn)到上述第3步執(zhí)行。
(2)浮點(diǎn)數(shù)運(yùn)算
在進(jìn)行浮點(diǎn)運(yùn)算之前,應(yīng)先對浮點(diǎn)數(shù)進(jìn)行規(guī)格化。
①浮點(diǎn)數(shù)的加減運(yùn)算
設(shè)有浮點(diǎn)數(shù)X=M2,Y=N-2J,求X+Y或X—Y,其運(yùn)算過
程如下:
對階:使兩個數(shù)的階碼相同?!頚=|i-j|,把階碼小的
數(shù)的尾數(shù)右移K位,其階碼加上K。當(dāng)右移尾數(shù)時,若尾數(shù)
用補(bǔ)碼表示則符號位參加移位,符號位不變,如果是原碼,
則符號位不參加移位,尾數(shù)的最高位補(bǔ)0。
尾數(shù)進(jìn)行加、減運(yùn)算:
規(guī)格化處理:若尾數(shù)所得結(jié)果不是規(guī)格化的數(shù),則需對
其進(jìn)行規(guī)格化處理。當(dāng)尾數(shù)溢出時,尾數(shù)向右規(guī)格化位,
階碼加1;當(dāng)尾數(shù)用補(bǔ)碼表示,尾數(shù)的最高位與符號位相同
時,應(yīng)向左規(guī)格化,尾數(shù)每向左移一位,階碼減L直到,尾
數(shù)最高位與符號位相反。’,一
IIIIIriiii
舍入操作:舍入的方法常用0舍1入,即當(dāng)向右規(guī)格化時,若
移掉的最高位為1,則在尾數(shù)末位加1,否則舍去。另一種則是
“恒1”法,即不管移走的數(shù)據(jù)為何值,尾數(shù)最末位恒置1。
溢出判斷:以階碼為準(zhǔn)。若階碼上溢,則結(jié)果溢出;若階碼
下溢,則結(jié)果為0;否則結(jié)果正確無溢出。
②浮點(diǎn)數(shù)的乘除運(yùn)算
浮點(diǎn)數(shù)相乘,其積的階碼為兩數(shù)階碼相加,積的尾數(shù)為兩
尾數(shù)相乘。浮點(diǎn)數(shù)相除,其商的階碼為兩數(shù)階碼之差,商的尾
數(shù)為兩尾數(shù)相除。其結(jié)果都需要進(jìn)行規(guī)格化處理,同時還需要
判斷其階碼是否溢出。
2.邏輯代數(shù)及邏輯運(yùn)算
邏輯代數(shù)是1849年英國數(shù)學(xué)家喬治?布爾提出的以代數(shù)的方
式對邏輯變量進(jìn)行描述和分析的數(shù)學(xué)工具,又稱布爾代數(shù)。邏
輯變量的取值只有“真”和“假”,通常以1和o表示/
(1)基本的邏輯運(yùn)算
、①'與"(AND)運(yùn)算
又稱為邏輯乘運(yùn)算,其運(yùn)算符號通常用AND、n、八或?等
表示。兩個變量的“與”運(yùn)算的運(yùn)算規(guī)則如表2—4所示。即
當(dāng)A、B中任一變量取0值時,其運(yùn)算結(jié)果為0。
表2.5“與”運(yùn)算表表2.6“或”運(yùn)
②.“或4(OR)運(yùn)算
'又稱為邏輯加運(yùn)算,其運(yùn)算符號為OR、U、V或+
等。兩個變量的“或”運(yùn)算規(guī)則如表2—5所示。即當(dāng)
A、B中任意一個取1值時,其運(yùn)算結(jié)果為1。
③“非"(NOT)運(yùn)算
又稱為邏輯求反運(yùn)算。常用表示對變量A進(jìn)行求反。
其運(yùn)算規(guī)則很簡單:=0,
=1O
④“異或”運(yùn)算
常用的還有“異或”運(yùn)算,又稱為半加運(yùn)算,其運(yùn)
算符號為XOR或。異或運(yùn)算是一種復(fù)合邏輯運(yùn)算,
可用上述基本邏輯運(yùn)算表示如下:
A十B=A?B+A?B./
,2.2邏輯部件
2.2.1寄存器
1.寄存器組(registerblock)概述
CPU中的寄存器通??梢浴⒎至霞S:用戶可見的寄存器(user-
visibleregisters)和狀態(tài)控制寄存器(controlandstatusregisters)o
⑴用戶可見的寄存器
用戶能夠通過機(jī)器語言來訪問這些寄存器。合理優(yōu)化地使用這
些寄存器可以減少對主存的訪問次數(shù),從而提高程序的執(zhí)行
速度。按其功能可以分為4類:
①通用寄存器(generalpurposeregister)
通用寄存器的用途由程序員編程決定,例如可以用來存放操作
數(shù),也可以用作尋址寄存器。,
②數(shù)據(jù)寄存器(dataregister)/-
數(shù)據(jù)寄存器僅能用來存放數(shù)據(jù)而不能用來對操作數(shù)的地址進(jìn)行
計算。,?
③地址寄存器(addressregister)
商需、器用來存放操作數(shù)的地址,一般而言地址寄存
器又可以分為段地址寄存器(segmentpointerregister)>
間址寄存器(indexregister)粕堆棧寄存器(stackpointer
register)o段地址寄存器用在采用段式內(nèi)存管理的計算
機(jī)中,存放著某一段內(nèi)存區(qū)域的基地址。間址寄存器
用在間接尋址(indexedaddressing)方式下。堆棧寄存器
用以存放堆棧棧頂?shù)牡刂?,使得在使用堆棧操?如
push,pop)時無須顯式地給出操作數(shù)的地址(即其地址
是隱含的)。
④標(biāo)志寄存器(flag/conditioncodesregister)
標(biāo)志寄存器中的位是由CPU硬件根據(jù)運(yùn)算的結(jié)果而設(shè)立
的一些指示位,以反映該次運(yùn)算的某些特征:結(jié)果為
正、負(fù)、零、溢出等等,并可以用作分支跳轉(zhuǎn)的依據(jù)。
一般而言,標(biāo)志寄存器允許編程者進(jìn)行讀操作,但不
允許對其直接進(jìn)行寫操作。/
⑵狀態(tài)控制寄存器(CSR)
這些窗容器被控制器(controlunit)用來控制CPU的操作。通常是程序
員不可見的,但也有某些寄存器在某種特定的狀態(tài)下可以由某些
特權(quán)指令進(jìn)行訪問。常見的CSR看:程序計數(shù)器(programcounter,
PC)>指令寄存器(instructionregister,IR).存蓿器地址寄存器
(memoryaddress‘register,MAR)>存儲器緩沖寄存器(memory
bufferregister,MBR)以及程序狀態(tài)字(programstatusworMPSW)。
PC中存放著下一條待取指令的地址。當(dāng)程序順序執(zhí)行時,CPU在取
一條指令后,會自動修改PC中的值以使其指向下一條指令。
而程序中的分支或跳轉(zhuǎn)指令也是通過修改PC中的值來達(dá)到改變
流程的目的。
IR中存放著CPU剛?cè)』氐闹噶?,以供指令譯碼使用。CPU和存儲器
之間的數(shù)據(jù)交換通過MAR和MBR來實(shí)現(xiàn)。MAR中存放著待訪問
的內(nèi)存單元的地址而MBR則存放從內(nèi)存中讀人的數(shù)據(jù)或要寫回
內(nèi)存單元的數(shù)據(jù)。
這4個寄存器(PC、IR、MAR、MBR)用來實(shí)現(xiàn)在CPU和存儲器
(memory)之間的數(shù)據(jù)交換。另外CPU內(nèi)部,在ALU與MBR、用
戶可見的寄存器之間也可能存在用作輸入/輸出緩沖寄存器。>
2..寄存器邏輯組成
“寄存器是計算機(jī)的一個重要部件,用于暫存數(shù)據(jù)、
指令等。它由觸發(fā)器和一些控制門組成。在寄存器
中,常用的是正邊沿觸發(fā)D觸發(fā)器和鎖存器。
圖2—3所示是由正沿觸發(fā)的D觸發(fā)器組成的四位
寄存器。在CP正沿作用下,外部數(shù)據(jù)才能進(jìn)入寄存
器??谑菑?fù)位端,CP是D觸發(fā)器的脈沖端,CK是
增加了個與邏輯門電路來取正沿脈沖的輸入端。四
D寄存器的功能見表2—7,其中t代表正脈沖,也
即正沿。
圖2—3四D寄存器
表2—7四D寄存器功能表
控制和輸入輸出
CKID2D3D4DIQ2Q3Q4Q
L,"JJ
1tID2D3D4DID2D3D4D
oxMrxx"xxoooo
事次E-在計算機(jī)中常要求寄存器有移位功能。如在進(jìn)行乘法
要求將部分積右移;在將并行傳送的數(shù)轉(zhuǎn)換成串行數(shù)時
也需移位。有移位功能的寄存器稱為移位寄存器。
2.2.2計數(shù)器
計數(shù)器是計算機(jī)、數(shù)字儀表中常用的一種電路。計數(shù)器按時鐘
作用方式來分,有同步計數(shù)器和異步計數(shù)器兩大類。在異步
計數(shù)器中,由于高位觸發(fā)器的時鐘信號是由低一位觸發(fā)器的
輸出來提供的,但是結(jié)構(gòu)簡單。同步計數(shù)器中各觸發(fā)器的時
鐘信號是由同一脈沖來提供的,因此,各觸發(fā)器是同時翻轉(zhuǎn)
的,它的工作頻率比異步計數(shù)器高,但結(jié)構(gòu)較復(fù)雜。計數(shù)器
按計數(shù)順序來分,有二進(jìn)制、十進(jìn)制兩大類。在計算機(jī)中較
少使用異步計數(shù)器,這里著重介紹有并行輸入數(shù)據(jù)功能的正
向同步十進(jìn)制計數(shù)器。
圖2—4是用主一從J—K觸發(fā)器構(gòu)成的同步十進(jìn)制集成化計數(shù)器。
同步計數(shù)器是采用快速進(jìn)位方式來計數(shù)的,觸發(fā)器及實(shí)現(xiàn)快
速進(jìn)位的邏輯電路是它的核心?!?/p>
圖2—4十進(jìn)制同步計數(shù)器
:“預(yù)置數(shù)”是集成化同步計數(shù)器的一個重要功能。一般設(shè)置控
'制端,用來選擇電路是執(zhí)行計數(shù)還是執(zhí)行預(yù)置數(shù):當(dāng)L=l,
執(zhí)行同步計數(shù);L=0,執(zhí)行預(yù)置數(shù)。由于J—K觸發(fā)器數(shù)據(jù)輸
入是雙端的,所以要將單端的預(yù)置數(shù)A?D經(jīng)兩級“與非”
門變成互補(bǔ)信號,再加在J,K端。圖2—4所示與非門4?11
就是為此目的而設(shè)置的。當(dāng)L=1時,這些與非門被封鎖,快
速進(jìn)位電路輸出經(jīng)或門12?15進(jìn)入觸發(fā)器,電路執(zhí)行計數(shù);
當(dāng)L=0,門4?11打開,快速進(jìn)位被封鎖,電路執(zhí)行置數(shù)。
能夠方便地擴(kuò)展位數(shù)是集成化計數(shù)器的一個特點(diǎn)。下面介紹
擴(kuò)展方法。計數(shù)器擴(kuò)展應(yīng)滿足以下條件。
首先,要有標(biāo)志計數(shù)器已計至最大數(shù)的進(jìn)位輸出端RC,對二
進(jìn)制、十進(jìn)制計數(shù)器,RC
分別為:4
二進(jìn)制計數(shù)器:RC=QAQBQCQD/,.可
十進(jìn)制計數(shù)器:RC=QAQD''
其次,計數(shù)器應(yīng)有保持功能。圖2—4計數(shù)器中
設(shè)置了“計數(shù)允許”端P和T,用來控制計數(shù)
器快速進(jìn)位電路和RC形成門:當(dāng)P,T均為
“1”,快速進(jìn)位電路才能打開(見表2—8),
此時若L=l,則電路處于計數(shù)狀態(tài);若P=0,
T=l,則快速進(jìn)位電路封鎖,電路不能計數(shù),
此時若L=l,預(yù)置數(shù)也被封鎖,又由于T=1
時RC形成門不封鎖,所以各觸發(fā)器狀態(tài)及RC
均保持。有了RC,P,T端,就可以方便地對
計數(shù)器進(jìn)行擴(kuò)展。
表2—8同步計數(shù)器功能表
LRDCK功能
1111計數(shù)
XX01并行輸入數(shù)據(jù)
0111X保持
X011X觸發(fā)器保持,RCR
XXX1X異步清“0”7
2.273譯碼器
譯碼器有n個輸入變量,2n個(或少于2n個)輸出,每個
輸出對應(yīng)于n個輸入變量的一個最小項。當(dāng)輸入為某
一組合時,對應(yīng)的僅有一個輸出為“1”(或為
“0”),其余輸出均為“0”(或為“1”)。譯碼器
的用途是把輸入代碼譯成相應(yīng)的控制電位,以實(shí)現(xiàn)
代碼所要求的操作。
圖2—5給出了2輸入4輸出譯碼器的邏輯圖。譯碼器中
常設(shè)置“使能”控制端正,當(dāng)該端為“1”時,譯碼
器功能被禁止,此時所有輸出均為“1”。使能端的
一個主要功能是用來擴(kuò)充輸人變量數(shù)。」
功能表
EAB丫。4%丫3
0000111
0101011
0011101
0111110
1XX1111
2.3控制部件
控制器(見圖2—6)負(fù)責(zé)控制整個計算機(jī)系統(tǒng)的運(yùn)行,
讀取指令寄存器、狀態(tài)控制寄存器以及從外部來的
控制信號(例如中斷信號),發(fā)布外控制信號控制
CPU與存儲器、I/O設(shè)備進(jìn)行數(shù)據(jù)交換,發(fā)布內(nèi)控
制信號控制寄存器間的數(shù)據(jù)交換,控制ALU完成指
定的運(yùn)算功能,并且管理其他的CPU內(nèi)部操作。
2.3.1控制器的基本功能
控制器的基本功能就是時序(sequencing)控制和執(zhí)行
(execution)控制。根據(jù)當(dāng)前運(yùn)行的程序,控制器使
CPU按一定的時序關(guān)系執(zhí)行一系歹U的微操作(micro-
operation),從而完成程序規(guī)定的動作。,/
控制器的輸入信號有:時鐘信號、指令寄存器、標(biāo)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025兼職國慶節(jié)臨時工合同范文
- 深圳市房屋出租合同
- 宅基地贈與合同范本
- 2025版FIDIC施工合同條款解析
- 2025授權(quán)制作廣播節(jié)目合同樣本
- 單位禮品訂購協(xié)議書
- 拆遷補(bǔ)償協(xié)議書范文
- 2025年03月山東海事局公開招聘事業(yè)單位人員4人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年03月南通開放大學(xué)工作人員5人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 甘肅省定西市臨洮縣文峰中學(xué)2024-2025學(xué)年高一下學(xué)期第一次月考語文試卷(含答案)
- 2025婚禮策劃服務(wù)的合同范本
- 2024年山東省濟(jì)南市中考數(shù)學(xué)試卷【含解析】
- 推動學(xué)校數(shù)字化轉(zhuǎn)型的創(chuàng)新策略與實(shí)踐路徑
- 探秘京劇臉譜(課件)六年級下冊綜合實(shí)踐活動遼師大版
- 靜脈采血操作課件
- (一模)2025年廣東省高三高考模擬測試 (一) 政治試卷(含官方答案)
- 2025屆山東省淄博市高三一??荚嚨乩碓囶}(原卷版+解析版)
- 《C語言指針》教學(xué)課件
- 9.3大氣壓強(qiáng)(課件)(共39張) 2024-2025學(xué)年度人教版物理八年級下冊
- 《陀螺定向測量技術(shù)規(guī)程》
- 2025年熔化焊接與熱切割考試1000題及答案
評論
0/150
提交評論