數據的表示和運算_第1頁
數據的表示和運算_第2頁
數據的表示和運算_第3頁
數據的表示和運算_第4頁
數據的表示和運算_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數據的表示和運算數據的表示和運算一、數制和編碼一、數制和編碼二、定點數的表示和運算二、定點數的表示和運算三、浮點數的表示和運算三、浮點數的表示和運算四、算術邏輯單元四、算術邏輯單元一、數制與編碼o 1.進位計數制及其相互轉換o 2.真值和機器數o 3.BCD碼o 4.字符與字符串o 5.校驗碼1.進位計數制及其相互轉換o 常見進位計數制:十進制、二進制、十六進制、八進制等。o 進制轉換1)二進制轉換為八進制和十六進制例:1111000010.011010 (1702.32)82)任意進制轉換為十進制:各位與權值相乘并相加例:(11011.1)23)十進制轉換為任意進制:除基取余法、乘基取整法例

2、:123.68752.真值和機器數o 真值:把在日常生活中見到的帶“+”或“-”符號的數稱為真值,如+15、-8等。o 機器數:把真值中“+”用“0”表示,“-”用“1”表示的這種符號“數字化”的數稱為機器數(機器碼)3.BCD碼o 定義:二進制編碼的十進制數(Binary-Coded Decimal,BCD),即采用4位二進制數來表示一位十進制數中的0-9這10個數碼。o BCD碼的種類:8421碼、余3碼、2421碼o 8421碼:一種有權碼,權值從高到低依次為8、4、2、1,有壓縮和非壓縮編碼。4.字符與字符串o 1)字符編碼ASCII碼 采用7位二進制數表示,可表示10個十進制數碼、5

3、2個英文大小寫字母和一些專用符號,共128個字符。o 2)漢字的表示和編碼 輸入編碼、漢字內碼、漢字字形碼 輸入編碼:區(qū)位碼和國標碼 國標碼=(區(qū)位碼)16+2020H 漢字內碼=(國標碼)16+8080Ho 3)字符串的存放5.校驗碼o 定義:能夠發(fā)現(xiàn)或能夠自動糾正錯誤的數據編碼,也稱為檢錯糾錯碼。通常是通過增加一些冗余碼來檢驗或糾錯編碼。o 3種常用的校驗碼:o 1)奇偶校驗碼o 2)海明(漢明)碼o 3)循環(huán)冗余校驗碼1)奇偶校驗碼o 定義:在原編碼基礎上加上一個校驗位,可以檢測出一位錯誤(或奇數位錯誤),但不能確定出錯的位置,也不能檢測出偶數位錯誤,增加的冗余位稱為奇偶校驗位。o 實現(xiàn)

4、方法:由若干有效信息位在前(或后)加上一個二進制位(校驗位)組成校驗碼。如下圖所示:o 求奇偶校驗碼步驟:確定校驗碼構成規(guī)則形成校驗位 偶校驗:在發(fā)送端求P=D4 D3 D2 D1 奇校驗:在發(fā)送端求P=D4 D3 D2 D1校驗原理 偶校驗:在接收端求P=D4 D3 D2 D1 P 奇校驗:在接收端求P=D4 D3 D2 D1 P 若P=0,無錯, P=1,有錯o 缺點:具有局限性,奇偶校驗只能發(fā)現(xiàn)數據代碼中奇數位出錯情況,但不能糾正錯誤,常用于對存儲器數據的檢查或者傳輸數據的檢查。2)漢明(Hamming/海明)碼o 定義:在有效信息位中加入幾個校驗位形成一種多重奇偶校驗碼,稱為漢明碼。o

5、 實現(xiàn)方法:將漢明碼的每一個二進制位分配到幾個奇偶校驗組沖,當某一位出錯后,就會引起有關的幾個校驗位的值發(fā)生變化,可以發(fā)現(xiàn)錯位,還能糾錯。o 求漢明碼的步驟: 確定漢明碼的位數:n+k2k-1 n位有效信息位數,k為校驗位的位數。 確定校驗位的分布 校驗位Pi在漢明位號為2i-1的位置上,其余各位為信息位。 形成校驗關系 校驗位Pi校驗的有效信息位為校驗位為1所形成的十進制數所對應的有效信息位。 計算校驗位取值 Pi=Di Dj Dk Dm 漢明碼校驗原理每個校驗組分別利用校驗位和參與形成校驗位的信息位進行偶校驗檢查,就構成了校驗方程。 Si= Pi Di Dj Dk Dm設校驗位為3位,根據

6、S3S2S1組成的十進制數可確定出錯位,具體為:若S3S2S1為000,無錯若S3S2S1為001,出錯位為第1位其他依此類推。3)循環(huán)冗余校驗碼o 定義:在K位信息碼后再拼接R位的校驗碼,整個編碼的長度為N位,因此,這種編碼又稱為(N,K)碼。o 實現(xiàn)方法:將K位二進制信息碼左移R位,將它與生成多項式G(x)做模2除法(異或),生成一個R位校驗碼,并附加在信息位后,構成一個新的二進制碼(CRC)碼,共K+R位,在接受端,同樣利用生成多項式G(x)做模2除法,以檢測出錯位置。o 求CRC碼的基本步驟: 移位 將原信息碼左移R位,低位補0 相除 對移位后的信息碼,用生成多項式進行模2除法,產生余

7、數。如圖所示o 求CRC碼的基本步驟: 移位 將原信息碼左移R位,低位補0 相除 對移位后的信息碼,用生成多項式進行模2除法,產生余數。如圖所示 檢錯和糾錯 用接受端收到的CRC碼和生成多項式G(x)做模2除法,若余數為0,則碼字無錯。若余數為010,則說明C2出錯。二、定點數的表示和運算二、定點數的表示和運算o 1.定點數的表示o 2.定點數的運算1.定點數的表示o 1)無符號數和有符號數表示o 2)有符號數的定點表示o 3)有符號數的4種編碼表示1)無符號數和有符號數表示o 無符號數:全部二進制位代表數的數值,沒有符號位。即整個機器字長的全部二進制位均表示數值位。o 表示范圍:若機器字長是

8、n位,表示范圍為0-2n-1o 有符號數:整個機器字長的全部二進制位中最高位為符號位,其余位為數值位。2)有符號數的定點表示o 定點小數:小數點位置固定在最高有效位之前,符號位之后。o 定點整數:小數點位置隱含固定在最低有效位之后。o 表示范圍:設機器字長為n+1位,則 定點小數表示范圍為: 定點整數表示范圍為:nn21)21 (12) 12(nn3)有符號數的4種編碼表示o 原碼(用X原表示)o 反碼(用X反表示)o 補碼(用X補表示)o 移碼(用X移表示)原碼o 定義: nnnxxxxx202020,原整數:小數: 10101xxxxx原例:求+1110,-1110的原碼例:求+0.110

9、1,-0.1101的原碼注:式中,注:式中,x為真值,為真值,n為整數的位數。為整數的位數。反碼o 定義: )12mod(20) 12(02011nnnnxxxxx(,反整數:小數: )2-(2mod10)2-(201n-n-(反xxxxx例:求+1101,-1101的反碼例:求+0.0110,-0.0110的反碼注:式中,注:式中,x為真值,為真值,n為整數為整數/小數的位數。小數的位數。補碼o 定義: )2mod20202011nnnnxxxxx(,補整數:小數: )2mod10201(補xxxxx例:求+1010,-1010的補碼例:求+0.1001,-0.1001的補碼注:式中,注:式

10、中,x為真值,為真值,n為整數的位數。為整數的位數。移碼o 定義:常用來表示浮點數的階碼,只能表示整數。 )22(2nnnxxx移例:求+10100,-10100的移碼注:式中,注:式中,x為真值,為真值,n為整數的位數。為整數的位數。小結:o 4種機器數的特點: 當真值為正時,原碼、反碼和補碼的表示形式相同。 當真值為負時,原碼、反碼、補碼符號位都用“1”表示,數制部分反碼是原碼的“每位求反”,補碼是原碼的“求反加1”。 移碼和補碼僅相差一個符號位,即補碼的符號位取反即為移碼。o 零的表示: 0原=0.0000 -0原=1.0000 0反=0.0000 -0反=1.1111 0補=0.000

11、0 -0補=0.0000 0移=1.0000 -0移=1.00000的補碼和移碼的形式相同。的補碼和移碼的形式相同。o 表示范圍(設機器字長為n+1): 整數: 原碼表示范圍為: 反碼表示范圍為: 補碼表示范圍為: 移碼表示范圍為:12) 12(nnx122nnx12) 12(nnx122nnx 小數: 原碼表示范圍為: 反碼表示范圍為: 補碼表示范圍為: (比原碼多-1) nnx21)21 (nnx21)21 (nx2112.定點數的運算o 1)定點數的移位運算o 2)原碼定點數加/減運算o 3)補碼定點數加/減運算o 4)溢出概念和判別方法o 5)定點數的乘/除運算(了解) 1)定點數的移

12、位運算o (1)算術移位 算術移位的對象是有符號數,移位過程中符號位保持不變。移位后空位填補規(guī)則如下:碼制添補規(guī)則正數原碼、反碼、補碼0負數原碼0補碼左移添0右移添1反碼1o (2)邏輯移位 邏輯移位將操作數看做無符號數,邏輯左移時,高位移丟,低位添0,邏輯右移時,低位移丟,高位添0。移位示意圖如下圖:o (3)循環(huán)移位 數據位和符號位一起進行移位,最高位移入進位標志位CF,而進位位則依次移入到數據的最低位。移位示意圖如下圖:2)原碼定點數加/減運算o 運算規(guī)則: 加法規(guī)則:先判斷符號位,若相同,絕對值相加,結果符號不變;若不同,則做減法,絕對值大的數減去絕對值小的數,結果符號與絕對值大的數相

13、同。 減法規(guī)則:兩個原碼表示的數相減,首先將減數符號取反,然后將被減數與符號取反后的減數按原碼加法進行運算。注意:當左邊位出現(xiàn)溢出時,將溢出位丟掉。注意:當左邊位出現(xiàn)溢出時,將溢出位丟掉。3)補碼定點數加/減運算o 運算規(guī)則: 參與運算的數均用補碼表示; 將符號位和數值位按二進制運算規(guī)則進行加/減運算,符號位產生的進位丟掉,結果的符號位由運算得出。 補碼加減運算根據如下公式進行:A+B補=A補+ B補A-B補=A補+ -B補式中式中-B補補為為B補補連同符號位每位求反。連同符號位每位求反。4)溢出概念和判別方法o (1)采用一位符號位 參加運算的兩個數符號相同,結果又與原操作數符號不同,則表示

14、結果溢出。V=ASBSSS+ASBSSSo (2)采用雙符號位 運算結果的兩個符號位相同,表示未溢出,運算結果的兩個符號位不同,表示溢出。V=SS1 SS2o (3)采用一位符號的進位 符號位的進位與最高數值位的進位不同,表示溢出。V=CS C14)定點數的乘/除運算o (1)原碼一位乘法o (2)補碼一位乘法(校正法、比較法)o (3)原碼除法o (4)補碼除法(1)原碼一位乘法o 規(guī)則: 參與運算的操作數取絕對值; 乘數的最低位作為判斷位,若為1,加被乘數,若為0,不加被乘數(加0) ; 累加后的部分積以及乘數右移一位,乘數空出的最高位放置部分積的低位; 重復n次第步驟2、3; 符號位單獨

15、處理,同號為正,異號為負。(2)補碼一位乘法o 校正法規(guī)則: 被乘數x符號任意,乘數y符號為正 被乘數x符號任意,乘數y符號為負,加-x補進行校正,故稱為校正法。例:例:6.19,6.20o比較法(Booth乘法)規(guī)則: 參加運算的數用補碼表示; 符號位參與運算; 乘數最低位后面增加一位附加位Yn+1,其初值為0; 乘數的最低兩位Yn、Yn+1決定了每次執(zhí)行的操作,當Yn+1 - Yn 為0時,加0,為-1時,加-x補,為1時,加 x補; 移位按補碼移位規(guī)則進行; 共需做n+1次累加,n次移位,第n+1 次不移位。(3)原碼除法(原碼加減交替法)o 規(guī)則: 符號位不參加運算; 先用被除數減去除

16、數,當余數為正時,商上1,余數和商左移一位,再減去除數;當余數為負時,商上0,余數和商左移一位,再加上除數; 當n+1步余數為負時,需加上|Y|得到n+1步正確的余數。(4)補碼除法(補碼加減交替法)o 規(guī)則: 符號位和數值部分一起參與運算; 若X與Y同號,則第一次做X補-Y補,若X與Y異號,則第一次做X補+Y補; 若余數與Y同號,商上1,接著將余數左移一位并加 -Y補,若余數與Y異號,商上0,接著將余數左移一位并加 Y補; 第3步驟作重復執(zhí)行n次; 商的最末一位恒置為1。3.浮點數的表示和運算 o 1)浮點數的表示o 2)浮點數的加/減運算 1)浮點數的表示o (1)浮點數的表示格式o (2

17、)規(guī)格化浮點數o (3)浮點數的表示范圍o (4)IEEE754標準o (1)浮點數的表示格式 浮點數表示為N=rExM式中,式中,r是浮點數階碼的底,是浮點數階碼的底,E是階碼,是階碼,M是尾數。是尾數。o (2)規(guī)格化浮點數(1/2|M|1) 左規(guī):當尾數結果為00.0 xxx或11.1xxx時,將尾數左移一位,階碼減1,直到尾數為00.1xxx或11.0 xxx,稱為左規(guī)。 右規(guī):當尾數結果出現(xiàn)溢出,即尾數出現(xiàn)01. xxx或10. xxx時,將尾數右移一位,階碼加1,稱為右規(guī)。(”0舍1入“或“恒置1”) 規(guī)格化表示的尾數形式: 原碼:正數為00.1xxx 負數為11.1xxx 補碼:

18、正數為00.1xxx 負數為11.0 xxx 當當S=-1/2時,補碼為時,補碼為11.100000為非規(guī)格化數據。為非規(guī)格化數據。o (3)浮點數的表示范圍1)2(221m1)2(221m上溢:浮點數的階碼大于最大階碼,需要進行中斷處理。上溢:浮點數的階碼大于最大階碼,需要進行中斷處理。下溢:浮點數的階碼小于最小階碼,按機器零處理。下溢:浮點數的階碼小于最小階碼,按機器零處理。o (4)IEEE754標準類型類型存儲位數存儲位數數符數符(s)(s)階碼階碼(E)(E)尾數尾數(M)(M)總位數總位數短實數短實數(Single,Float(Single,Float) )1 1位位8 8位位23

19、23位位3232位位長實數長實數(Double)(Double)1 1位位1111位位5252位位6464位位臨時實數(延伸雙精確度,不常用)臨時實數(延伸雙精確度,不常用)1 1位位1515位位6464位位8080位位o 尾數:規(guī)格化后尾數最高位總是“1”,為了能使尾數多表示一位有效位,將“1”隱含,故尾數實際是多一位;o 階碼:對于短實數,偏移量位127(27-1),長實數,偏移量為1023(210-1)。2)浮點數的加/減運算 對階 使兩數的小數點對齊,通常將階碼小的尾數右移1位,階碼加1,直到兩數階碼相等。 尾數求和 將對階后的尾數按定點加(減)運算規(guī)則進行運算。 規(guī)格化 對尾數求和結

20、果按規(guī)格化要求進行規(guī)格化。 舍入 對尾數右移時丟失的數值位進行舍入操作。 溢出判斷 根據浮點數溢出概念進行判斷。通常根據浮點數的階碼進行判斷,當階碼為01,xxx時為上溢出,階碼為10,xxx時為下溢,按機器零處理。4.算術邏輯單元ALU o 1)串行加法器和并行加法器 o 2)算術邏輯單元ALU的功能和結構 1)串行加法器和并行加法器o (1)一位全加器o (2)串行加法器o (3)并行加法器(1)一位全加器(FA)Si=Ai Bi Ci1 Ci=AiBi+(Ai Bi)Ci1 (2)串行加法器 在串行加法器中,只有一個全加器,數據逐位串行送入加法器中進行運算。如果操作數長n位,加法就要分n

21、次進行,每次產生一位和,并且串行逐位地送回寄存器。進位觸發(fā)器用來寄存進位信號,以便參與下一次的運算。 串行加法器具有器件少成本低的優(yōu)點,但運算速度慢,多用于某些低速的專用運算器。 (3)并行加法器o 并行加法器:由多個全加器組成,其位數與機器的字長相同,各位數據同時運算。o 存在問題:最長運算時間,主要是由進位信號的傳遞時間決定的,而每個全加器本身的求和延遲只是次要因素。因此,關鍵是進位產生和傳遞的速度。o 并行加法器:串行進位;并行進位串行進位其中:C1=A1B1+(A1 B1)C0 或(C1=G1+P1C0) C2=A2B2+(A2 B2)C1 或(C2=G2+P2C1) Cn=AnBn+

22、(An Bn)Cn1 或(Cn=Gn+PnCn1)式中:式中:Gi=AiBi Pi=Ai Bi 時間延遲為時間延遲為2ntY并行進位o 并行進位:先行進位、同時進位,即各級進位同時產生。o 實現(xiàn):將各級低位產生的本級G和P信號依次同時送到高位各全加器的輸入,以使它們同時形成進位信號。表達式如下: C1=G1+P1C0 C2=G2+P2C1=G2+P2G1+P2P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1+ P4P3P2P1C0 若不考慮若不考慮GiPi的形成時間,最長時間延遲為的形成時間,最

23、長時間延遲為2tY分組并行進位方式單級先行進位方式又稱為組內并行、組間串行進位方式C1=G1+P1C0 C2=G2+P2C1=G2+P2G1+P2P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1 +P4P3P2P1C0若不考慮若不考慮GiPi的形成時間,最長時間延遲為的形成時間,最長時間延遲為2mtY多級先行進位方式又稱為組內并行、組間并行進位方式第一小組的進位輸出C4可以寫為:C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0 =G1*+P1*C0式中,G1*=G4+P

24、4G3+P4P3G2+P4P3P2G1;P1*=P4P3P2P1Gi*稱為組進位產生函數,Pi*稱為組進位傳遞函數,這兩個輔助函數只與Pi、Gi有關,同理可得:C8=G2*+P2*C4=G2*+P2*G1*+P2*P1*C0 C12=G3*+P3*G2*+P3*P2*G1*+P3*P2*P1*C0 C16=G4*+P4*G3*+P4*P3*G2*+P4*P3*P2*G1*+P4*P3*P2*P1*C0 若不考慮若不考慮GiPi的形成時間,最長時間延遲為的形成時間,最長時間延遲為3x2tY=6tY為了要產生組進位函數,需要對原來的CLA電路加以修改: 第1組內產生G1*、P1*、C3、C2、C1

25、,不產生C4; 第2組內產生G2*、P2*、C7、C6、C5,不產生C8; 第3組內產生G3*、P3*、C11、C10、C9,不產生C12; 第4組內產生G4*、P4*、C15、C14、C13,不產生C16。這種電路稱為成組先行進位電路(BCLA)。利用這種4位的BCLA電路以及進位產生與傳遞電路和求和電路可以構成4位的BCLA加法器。16位的兩級先行進位加法器可由4個BCLA加法器和1個CLA電路構成。2)算術邏輯單元ALU的功能和結構o ALU:一種功能較強的組合邏輯電路,能進行多種算術邏輯運算,由于加、減、乘、除運算最終都能歸結為加法運算,因此,ALU的核心是一個并行加法器,同時也能執(zhí)行

26、邏輯運算。o 4位ALU芯片(74181):16位組內并行、組間串行進位位組內并行、組間串行進位ALU框圖框圖16位組內并行、組間并行進位位組內并行、組間并行進位ALU框圖框圖本章復習o 數制與編碼o 定點數的表示和運算o 浮點數的表示和運算o 算術邏輯單元ALU 數制與編碼1下列各種數制的數中,最小的數是(B)。A(101001)2 B(101001)BCD C(52)8 D(233)16 2已知大寫英文字母“A”的ASCII碼值為41H,現(xiàn)字母“F”被存放在某個存儲單元中,若采用偶校驗(假設最高位作為校驗位),則該存儲單元中存放的十六進制數是(B)。A46H BC6H C47H DC7H 3【2009年計算機聯(lián)考真題】 一個C語言程序在一臺32位機器上運行。程序中定義了三個變量x、y、z,其中x和z為int型,y為short型。當x=127、y=-9時,執(zhí)行賦值語句z=x+y后,x、y、z的值分別是(D)。AX=0000007FH,y=FFF9H,z=00000076H BX=0000007FH,y=FFF9H,z=FFFF0076H CX=0000007FH,y=FFF7H,z=FFFF0076H DX=0000007FH,y=FFF7H,z=00000076H 4【2010年計算機聯(lián)考真題】 假定有4個整

溫馨提示

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

評論

0/150

提交評論