計算機組成原理-第2章 信息表示與編碼_第1頁
計算機組成原理-第2章 信息表示與編碼_第2頁
計算機組成原理-第2章 信息表示與編碼_第3頁
計算機組成原理-第2章 信息表示與編碼_第4頁
計算機組成原理-第2章 信息表示與編碼_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機組成原理第二章2023年9月28日信息表示與編碼1、進位計數(shù)制以及相互轉換 十進制,二進制,八進制,十六進制2、數(shù)值數(shù)據(jù)和非數(shù)值數(shù)據(jù)的表示方法 數(shù)值數(shù)據(jù)定點數(shù)----原反補移浮點數(shù)----IEEE754BCD碼非數(shù)值數(shù)據(jù)ASCII、漢字本講安排本講將解決的主要問題計算機中數(shù)值數(shù)據(jù)非數(shù)值數(shù)據(jù)

是如何表示?1、進位計數(shù)制進位計數(shù)制:用少量的數(shù)字符號,按先后次序把它們排成數(shù)位,由低到高進行計數(shù),計滿進位,這樣的方法稱為進位計數(shù)制基數(shù):進位制基本特征數(shù),即所用到的數(shù)字符號個數(shù)例如10進制:0~9十個數(shù)碼表示,基數(shù)為10權:進位制中各位“1”所表示的值為該位的權常見的進位制:2,8,10,16進制十進制數(shù)的多項式表示:N10=dn-1×10n-1+

dn-2×10n-2+

??????d1×101+

d0×100+

d-1×10-1+

d-2×10-2+??????d-m×10-M

m,n為正整數(shù),其中n為整數(shù)位數(shù);m為小數(shù)位數(shù)。Di表示第i位的系數(shù),10i稱為該位的權.1、十進制(Decimal)基數(shù):10;符號:0,1,2,3,4,5,6,7,8,9計算規(guī)律:“逢十進一”或“借一當十”例如:一個十進制數(shù)123.45的表示123.45=1×102+2×101+3×100+4×10-1+5×10-2注:等式左邊為并列表示法等式右邊為多項式表示法2、二進制(Binary)二進制的多項式表示:N2=dn-1×2n-1+

dn-2×2n-2+

??????d1×21+

d0×20+

d-1×2-1+

d-2×2-2+??????d-m×2-m其中n為整數(shù)位數(shù);m為小數(shù)位數(shù)。Di表示第i位的系數(shù),2i稱為該位的權.

基數(shù):2符號:0,1計算規(guī)律:逢二進一或借一當二3、十六進制(Hexadecimal)二進制的多項式表示:N16=dn-1×16n-1+

dn-2×16n-2+

??????d1×161+

d0×160+

d-1×16-1+

d-2×16-2+??????d-m×16-m

其中n為整數(shù)位數(shù);m為小數(shù)位數(shù)。Di表示第i位的系數(shù),16i稱為該位的權.基數(shù):16符號:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F計算規(guī)律:逢十六進一或借一當十六例如十六進制數(shù)(2C7.1F)16的表示(2C7.1F)16=2×162+12×161+7×160+1

×16-1+15×16-24、進位計數(shù)制之間的轉換1)R進制轉換成十進制的方法按權展開法:先寫成多項式,然后計算十進制結果.N=dn-1dn-2??????d1d0d-1d-2??????d-m=dn-1×Rn-1+

dn-2×Rn-2+

??????d1×R1+

d0×R0+

d-1×R-1+

d-2×R-2+??????d-m×R-m例:寫出(1101.01)2,(237)8,(10D)16的十進制數(shù)(10D)16=1×162+13×160=256+13=269(1101.01)2=1×23+1×22+0×21+1×20+0×2-1+1×2-2=8+4+1+0.25=13.25(237)8=2×82+3×81+7×80=128+24+7=1592)十進制轉換成二進制方法一般分為兩個方法:方法1、整數(shù)部分的轉換除2取余法(基數(shù)除法)小數(shù)部分的轉換乘2取整法(基數(shù)乘法)方法2、減權定位法除基取余法:把給定的除以基數(shù),取余數(shù)作為最低位的系數(shù),然后繼續(xù)將商部分除以基數(shù),余數(shù)作為次低位系數(shù),重復操作直至商為0

例如:用基數(shù)除法將(327)10轉換成二進制數(shù)2327余數(shù)216312811240122002100250221210201(327)10=(101000111)2把給定的十進制小數(shù)乘以2,取其整數(shù)作為二進制小數(shù)的第一位,然后取小數(shù)部分繼續(xù)乘以2,將所的整數(shù)部分作為第二位小數(shù),重復操作直至得到所需要的二進制小數(shù)例如:將(0.8125)10轉換成二進制小數(shù)整數(shù)部分0. 2×0.8125=1.6251 2×0.625=1.251 2×0.25=0.50 2×0.5=11 (0.8125)10=(0.1101)2乘基取整法(小數(shù)部分的轉換)例:將(0.2)10轉換成二進制小數(shù)整數(shù)部分00.2×

2=0.4 00.4×2=0.8 00.8×2=1.6 10.6×2=1.2 10.2×2=0.4 00.4×2=0.8 00.8×2=1.6 10.6×2=1.2 1(0.2)10=[0.001100110011….]2減權定位法將十進制數(shù)依次從二進制的最高位權值進行比較,若夠減則對應位置1,減去該權值后再往下比較,若不夠減則對應位為0,重復操作直至差數(shù)為0。

5122561286432168421例如:將(327)10轉換成二進制數(shù)256<327<512327-256=711256 71<1280128 71-64=7164 7<32032 7<16016 7<808 7-4=314 3–2=112 1–1=011二進制(B)轉換成八進制(Q)例:(10110111.01101)2(10110111.01101)2=(267.32)8八進制:267.32二進制:010,110,111.011,010二進制:10,110,111

.011,013)其它進制之間的直接轉換法八進制(Q)轉換二進制(B)例如:(123.46)8 =(001,010,011

.100,110)2 =(1010011.10011)2二進制(B)轉換成十六進制(H)例:(110110111.01101)2(10110111.01101)2=(1B7.68)16十六進制:1B7.68二進制:0001,1011,0111.0110,1000二進制:1,1011,0111.0110,110110111.01101B

=1B7.68H十六進制(H)轉換成二進制(B)例:(7AC.DE)16 =(0111,1010,1100.1101,1110)2 =(11110101100.1101111)2常用信息分類及表示信息數(shù)值數(shù)據(jù)非數(shù)值數(shù)據(jù)--無符號數(shù)--有符號數(shù)浮點數(shù)定點數(shù)十進制數(shù)定點整數(shù)定點小數(shù)原碼補碼反碼移碼正整數(shù)字符、漢字等真值:正、負號加某進制數(shù)絕對值的形式稱為真值。如+3,-5等,即實際值。機器數(shù):符號以及數(shù)值都數(shù)碼化的數(shù)稱為機器數(shù)如:X=01011Y=11011即真值在機器中的表示,稱為機器數(shù)名詞解釋:真值和機器數(shù)計算機中常用的數(shù)據(jù)表示格式有兩種:

?定點格式——容許的數(shù)值范圍有限,但要求的處理硬件比較簡單。

?浮點格式——容許的數(shù)值范圍很大,但要求的處理硬件比較復雜。1.定點數(shù)的表示方法定點表示:約定機器中所有數(shù)據(jù)的小數(shù)點位置是固定不變的。(由于約定在固定的位置,小數(shù)點就不再使用記號“.”來表示。)通常將數(shù)據(jù)表示成純小數(shù)或純整數(shù)。數(shù)據(jù)表示定點數(shù):小數(shù)點位置固定不變的數(shù)定點整數(shù):小數(shù)點固定在最低位數(shù)的右面(b)定點小數(shù)x7x6x5x4x3x2x1x0(a)定點整數(shù)x6x7x5x4x3x2x1x0數(shù)值范圍:純小數(shù)

0≤|x|≤1–2-n

純整數(shù)

0≤|x|≤2n–1目前計算機中多采用定點純整數(shù)表示,因此將定點數(shù)表示的運算簡稱為整數(shù)運算。定點小數(shù):小數(shù)點固定在最高位數(shù)的后面,即純小數(shù)表示 無符號數(shù)的編碼正整數(shù)

數(shù)值表示:

x=x0x1x2…xn xi={0,1},0≤i≤n

x02n+x12n-1+…+xn-121+xn

數(shù)值范圍 0≤x≤2n+1-1例如:x=010101其數(shù)值=24+22+20=21在數(shù)據(jù)處理的過程中,如不需要設置符號位可用全部字長來表示數(shù)值大小。如8位無符號數(shù)的取值范圍是0~255(28-1)。計算機中定點數(shù)表示方法——

原碼、補碼、反碼、移碼。若定點小數(shù)的原碼形式為x0.x1x2···xn,(共n+1位)則原碼表示的定義是:式中[x]原是機器數(shù),x是真值。1、原碼表示法(1)定點小數(shù)

x1–x=1+|x|-(1-2-n)<x

00

x<1-2-n[x]原=

數(shù)的機器碼表示若定點整數(shù)的原碼形式為x0x1x2···xn,則原碼表示的定義是:(2)定點整數(shù)

x2n–x=2n+|x|-2n<x

00

x<2n[x]原=例1:x=+0.1001,則[x]原=0.1001

x=-0.1001,則[x]原=1+|x|=1.1001

例2:x=0.10110;-0.10110;0.0000對于0,原碼機器中往往有“+0”、“-0”之分,故有兩種形式:[+0]原=0.000...0[-0]原=1.000...0[x]原=0.10110;1.10110;0.00001.0000

例3:x=+1011總共用5位表示,n=4

[x]原=01011

x=-1011

[x]原=2n+|x|=10000+|-1011|=11011原碼小數(shù)的表示范圍:最大值:1-2-n最小值:-(1-2-n)

若原碼小數(shù)的位數(shù)是8位時,其該數(shù)表示的最大值、最小值:8位:127/128,-127/128原碼整數(shù)的表示范圍:最大值:2n-1最小值:-(2n-1)

若原碼整數(shù)的位數(shù)是8位,其表示的最大值、最小值8位:127,-127原碼為符號位加上數(shù)的絕對值,0正1負;原碼零有兩個編碼,+0和-0編碼不同;原碼加減運算復雜,乘除運算規(guī)則簡單;原碼表示簡單,易于同真值之間進行轉換。

(3)結論2、補碼表示法(1)模的概念假設兩位十進制數(shù)計算:?77—38=?

?77+62=13977—38=77+62=39(mod100)

由此可以看出,減38和加62是等價的,前提是說對模為100是正確的。這個100在數(shù)學上稱為模數(shù)

計算機中運算器、寄存器、計數(shù)器都有一定的位數(shù),不可能容納無限大的任意數(shù)。當運算結果超出實際的最大表示范圍,就會發(fā)生溢出,此時所產(chǎn)生的溢出量就是模(module)。因此,可以把模定義為一個計量器的容量。如:一個4位的計數(shù)器,它的計數(shù)值為0--15。當計數(shù)器計滿15之后再加1,這個計數(shù)器就發(fā)生溢出,其溢出量為16,也就是模等于16。?定點小數(shù)的溢出量為2,即以2為模;?一個字長為n+1位的定點整數(shù)的溢出量為2n+1,即以2n+1為模。模的概念定義:任意一個數(shù)X的補碼記為[x]補,

[x]補=X+M(ModM)當X>0時X+M>M自動丟失,[x]補=X(ModM)當X<0時X+M=M-|X|<M,[x]補=X+M(ModM)若定點小數(shù)的補碼形式為x0.x1x2···xn,則補碼表示的定義是:(2)定點小數(shù)

x0

x<12+x=2–|x|-1

x

0[x]補=(mod2)例:x=+0.1011,則[x]補=0.1011x=

-0.1011,則[x]補=10+x=10.0000-0.1011=1.0101對于0,[+0]補=[-0]補=0.0000

(mod2)

注意:0的補碼表示只有一種形式。若定點整數(shù)的補碼形式為x0x1x2···xn,則補碼表示的定義是:(3)定點整數(shù)

x2n+1+x=2n+1–|x|-2n

x

00

x<2n[x]補=(mod2n+1)例:x=+0111,則[x]補=00111

x=-0111,則[x]補=24+1–|-0111|=100000–0111=11001n+1位補碼整數(shù):-2n

___2n-1

n+1

位補碼小數(shù):-1

___1-2-n

若補碼小數(shù)的位數(shù)是8位時,其該數(shù)表示的最大值、最小值:

-1__1-2-7即-1—127/128

若補碼整數(shù)的位數(shù)是8位,其表示的最大值、最小值:-128--127補碼的表數(shù)范圍[+0]補=0.000…0=[+0]原[-0]原=1.000…0[-0]補=1.111…1+0.000…1=0.000…0=[+0]補在補碼表示法中1.000…0用作比最小的負數(shù)還小的一個數(shù):-1補碼最高一位為符號位,0正1負;補碼零有唯一編碼;補碼能很好用于加減運算。(4)特點補碼滿足[-x]補+[x]補=0[+7]補=00111最高位參與演算,與其它位一樣對待。[-7]補=11001擴展方便。5位的補碼擴展為8位001110000011111001

11111001算術移位。假設[x]補=

x0.x1x2···xn,

[x/2]補=

x0.x0x1x2···xn-1最大的優(yōu)點就是將減法運算轉換成加法運算。[X+Y]補=[X]補+[Y]補[X-Y]補=[X]補+[-Y]補例如:X=(11)10=(1011)2Y=(5)10=(0101)2已知字長n=5位[X]補+[-Y]補=01011+11011=100110=00110=(6)10

注:最高1位已經(jīng)超過字長故應丟掉[X-Y]補=[0110]補=00110例

設x=1010,y=-1010,求[x]補和[y]補。解:根據(jù)補碼的編碼方法,正數(shù)的補碼與它的二進制表示相同,所以加上符號位0后得

[x]補=01010[x]補=00001010負數(shù)的補碼的編碼方法1)將二進制代碼前加0010102)再全部按位取反101013)然后在最低位上加110110[y]補=10110正數(shù)的補碼在其二進制代碼前加上符號位0;負數(shù)的補碼是將二進制代碼前加0后,再全部按位取反,然后在最低位上加1。補碼編碼的簡便方法原碼與補碼之間的轉換已知原碼求補碼正數(shù)[X]補=[X]原負數(shù)

符號除外,各位取反,末位加1例:X=-1001001

[X]原=11001001

[X]補=10110110+1=10110111

[X]補=27+1

+X=100000000-1001001=10110111100000000-100100110110111更簡單的方法是?由[X]補求[-X]補運算過程是:將[X]補連同符號一起將各位取反,末位再加1。例:設字長N=8位X=+1001001 [X]補=01001001各位取反10110110末位再加110110111

即:[-X]補=10110111求值方法x=-x02n+x12n-1+…+xn-12+xn例如:10000100的真值為-128+4=-124補碼與真值之間的轉換補碼符號位為“1”--負,余下求補為數(shù)值部分符號位為“0”--正,余下為數(shù)值部分例:[X]補=01001001X=01001001例:[X]補=10000000X=-10000000B=80H=-128(1)定點小數(shù)定義

x(2–2-n)+x-1

x

00

x<1[x]反=一般情況下,對于正數(shù)x=+0.x1x2

xn,則有:

[x]反=0.x1x2

xn

對于負數(shù)x=-0.x1x2

xn,則有

[x]反=1.x1x2

xn3、反碼表示法所謂反碼,就是二進制的各位數(shù)碼0變?yōu)?,1變?yōu)?。例:x=0.10110-0.101100.0000[x]反=(2)由反碼求補碼的公式(2-2-n)+x[x]反=2+x

[x]補=由反碼與補碼的定義得:

[x]反+2-n

[x]補=

即:若要一個負數(shù)變補碼,其方法是符號位置1,其余各位0變1,1變0,然后在最末位(2-n)上加1。0.101101.010010.00001.1111(3)定點整數(shù)定義

x(2n+1–1)+x-2n

x

00

x<2n[x]反=(4)

結論

負數(shù)反碼為符號位跟每位數(shù)的反,0正1負;

反碼零有兩個編碼,+0和-0的編碼不同;

反碼難以用于加減運算;反碼的表數(shù)范圍與原碼相同。4、移碼表示法移碼通常用于表示浮點數(shù)的階碼。假設定點整數(shù)移碼形式為x0x1x2···xn時,移碼的定義是:

2n+x

-2n

x

2n[x]移=(1)移碼定義

8位移碼表示的機器數(shù)為數(shù)的真值在數(shù)軸上向右平移了128個位置。0-128+127負數(shù)正數(shù)機器數(shù)表示范圍:00000000~11111111例1:當正數(shù)x=+10101時,[x]移=25+10101=1,10101;例2:當負數(shù)x=-10101時,[x]移=25+x=25–10101=0,01011例3:0的移碼是唯一的,即:[+0]移=[-0]移=100…00

[注意]:移碼中符號位x0表示的規(guī)律與原碼、補碼、反碼相反——“1”正,“0”負。補碼的定義:

x2n+1+x-2n

x

00

x<2n[x]補=移碼的定義:2n+x-2n

x

2n[x]移=當0

x<2n時,[x]補+

2n[x]移=當-2n

x

0時,2n+[x]補-

2n+1=[x]補-

2n[x]移=(2)移碼和補碼的關系:移碼、補碼和真值之間的關系真值(十進制)真值(二進制)[x]補(補碼)[x]移(移碼)-128-1000,00001000,00000000,0000-127-0111,11111000,00010000,0001…………-1-0000,00011111,11110111,111100000,00000000,00001000,000010000,00010000,00011000,0001………1270111,11110111,11111111,1111?在移碼中,最高位為0表示負數(shù),最高位為1表示正數(shù),這與原碼、補碼、反碼的符號位取值正好相反。

?移碼為全0時所對應的真值最小,為全1時所對應的真值最大!因此,移碼的大小直觀地反映了真值的大小,這將有助于兩個浮點數(shù)進行階碼大小比較。

?真值0在移碼中的表示形式是唯一的,即:

[+0]移=[-0]移=100…00

?移碼把真值映射到一個正數(shù)域,所以可將移碼視為無符號數(shù),直接按無符號數(shù)規(guī)則比較大小。?同一數(shù)值的移碼和補碼除最高位相反外,其他各位相同。(3)移碼的特點碼制表示法小結[X]原、[X]反、[X]補用“0”表示正號,用“1”表示負號;[X]移用“1”表示正號,用“0”表示負號。如果X為正數(shù),則[X]原=[X]反=[X]補。如果X為0,則[X]補、[X]移有唯一編碼,[X]原、[X]反有兩種編碼。移碼與補碼的形式相同,只是符號位相反。

數(shù)據(jù)四種機器表示法中:(1)移碼表示法主要用于表示浮點數(shù)的階碼。(2)補碼表示對加減法運算十分方便,因此目前機器中廣泛采用補碼表示法。(3)在一些機器中,數(shù)用補碼表示,補碼存儲,補碼運算。在有些機器中,數(shù)用原碼進行存儲和傳送,運算時改用補碼。還有些機器在做加減法時用補碼運算,在做乘除法時用原碼運算。5、小結

例:設機器字長16位,定點表示,尾數(shù)15位,數(shù)符1位,問:

(1)定點原碼整數(shù)表示時,最大正數(shù)是多少?最小負數(shù)是多少?

(2)定點原碼小數(shù)表示時,最大正數(shù)是多少?最小負數(shù)是多少?;解:(1)定點原碼整數(shù)表示

最大正數(shù)值=(215-1)10=(+32767)10

0111111111111111

最小負數(shù)值=-(215-1)10=(-32767)10

1111111111111111(2)定點原碼小數(shù)表示

最大正數(shù)值=(1-2-15)10=(+0.111...11)2

最小負數(shù)值=-(1-2-15)10=(-0.111..11)2

任意一個十進制數(shù)N可以寫成

N=10E×M

計算機中一個任意進制數(shù)N可以寫成

N=Re×mm:尾數(shù),是一個純小數(shù)。

e:浮點的指數(shù),是一個整數(shù)。

R:基數(shù),對于二進計數(shù)值的機器是一個常數(shù),一般規(guī)定R為2,8或16。浮點數(shù)的表示方法9×10-28=0.9×10-272×1033=0.2×1034

——N=10E·M(十進制表示)

尾數(shù):用定點小數(shù)表示,給出有效數(shù)字的位數(shù),決定了浮點數(shù)的表示精度;階碼:用定點整數(shù)形式表示,指明小數(shù)點在數(shù)據(jù)中的位置,決定了浮點數(shù)的表示范圍。EsE1E2……EmMsM1M2……Mn階符階碼數(shù)符尾數(shù)一個機器浮點數(shù)由階碼和尾數(shù)及其符號位組成:(2)浮點數(shù)的標準格式

(N=Re.m)為便于軟件移植,使用IEEE(電氣和電子工程師協(xié)會)標準IEEE754標準:尾數(shù)用原碼;階碼用移碼;基為2

S——尾數(shù)符號,0正1負;M——尾數(shù),純小數(shù)表示,小數(shù)點放在尾數(shù)域的最前面。采用“原碼”表示。E——階碼,采用“移碼”表示;

階符采用隱含方式,即采用“移碼”方法來表示正負指數(shù)。?按照IEEE754的標準,32位浮點數(shù)和64位浮點數(shù)的標準格式為:SEM31302322032位SEM63625251064位(3)浮點數(shù)的規(guī)格化表示一個浮點數(shù)有不同的表示:0.5;0.05101;0.005102;5010-2為提高數(shù)據(jù)的表示精度,需做規(guī)格化處理。浮點數(shù)是數(shù)學中實數(shù)的子集合,由一個純小數(shù)乘上一個指數(shù)值來組成。浮點數(shù)的規(guī)格化規(guī)格化目的:為了提高數(shù)據(jù)的表示精度為了數(shù)據(jù)表示的唯一性尾數(shù)為R進制的規(guī)格化:絕對值大于或等于1/R二進制原碼的規(guī)格化數(shù)的表現(xiàn)形式:

正數(shù)0.1xxxxxx負數(shù)1.0xxxxxx正數(shù)0.1xxxxxx負數(shù)1.1xxxxxx補碼尾數(shù)的規(guī)格化的表現(xiàn)形式:尾數(shù)的最高位與符號位相反把不滿足這一表示要求的尾數(shù),變成滿足這一要求的尾數(shù)的操作過程,叫作浮點數(shù)的規(guī)格化處理,通過尾數(shù)移位和修改階碼實現(xiàn)。在計算機內,其純小數(shù)部分被稱為浮點數(shù)的尾數(shù),對非0值的浮點數(shù),要求尾數(shù)的絕對值必須>=1/2,即尾數(shù)域的最高有效位應為1,稱滿足這種表示要求的浮點數(shù)為規(guī)格化表示:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論