第02次小課 數(shù)據(jù)運算、浮點數(shù)據(jù)存儲_第1頁
第02次小課 數(shù)據(jù)運算、浮點數(shù)據(jù)存儲_第2頁
第02次小課 數(shù)據(jù)運算、浮點數(shù)據(jù)存儲_第3頁
第02次小課 數(shù)據(jù)運算、浮點數(shù)據(jù)存儲_第4頁
第02次小課 數(shù)據(jù)運算、浮點數(shù)據(jù)存儲_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1 1.原碼加/減法運算 加法規(guī)則: 先判符號位,若相同,絕對值相加,結(jié)果符號不變; 若不同,則作減法, |大| - |小|,結(jié)果符號與|大|相同。 減法規(guī)則: 兩個原碼表示的數(shù)相減,首先將減數(shù)符號取反,然后將被減數(shù)與符號取反后的減數(shù)按原碼加法進行運算。23 4main() int x=74,y=-41,z; z=x+y; printf(xyzn); printf(%d%d%dn,x,y,z); printf(%X %X %Xn,x,y,z);運行結(jié)果:xyz74 -41 334A FFD7 2156main() int x=106,y=52,z; z=x-y; printf(xyzn); p

2、rintf(%d%d%dn,x,y,z); printf(%X %X %Xn,x,y,z);運行結(jié)果:xyz106 52 546A 34 367邏輯運算邏輯運算單元運算單元運算NOT非運算非運算雙元運算雙元運算AND與運算與運算OR或運算或運算XOR異或運算異或運算8 9main() int x=182,y=215,z; z=x&y; printf(xyzn); printf(%d%d%dn,x,y,z); printf(%X %X %Xn,x,y,z);運行結(jié)果:xyz182 215 150B6 D7 9610 11main() int x=182,y=215,z; z=x|y; p

3、rintf(xyzn); printf(%d%d%dn,x,y,z); printf(%X %X %Xn,x,y,z);運行結(jié)果:xyz182 215 247B6 D7 F712 13 Xor 浮點表示法允許小數(shù)點浮動允許小數(shù)點浮動,即可以在小數(shù)點的左右有不同數(shù)量的數(shù)碼,這樣可以有效地保證數(shù)據(jù)的精度。 在浮點表示法中,無論十進制還是二進制,一個數(shù)字都由三部分組成,如圖2-4所示。第一部分是符號符號,可正可負; 第二部分是小數(shù)點應該左右移動構(gòu)成實際數(shù)字的位移量位移量; 第三部分是小數(shù)點位置固定的定點定點表示法。浮點表示法 三.浮點數(shù)的表示格式例例2-25 用科學記數(shù)法表示數(shù)字 -0.000000

4、00000316。解: 實際數(shù)字: -0.00000000000316十進制科學記數(shù)法: -3.1610-12在這個例子中,這個數(shù)字的三個部分分別是: 符號(-)、位移量(-12)、定點部分(3.16)。例例2-27 用浮點格式表示數(shù)字 -(0. 00000000000001101)2。解: 使用例2-25同樣的方法,小數(shù)點前只保留一位數(shù)字。實際數(shù)字: -(0. 00000000000001101)2二進制科學記數(shù)法: -1.1012-16在這個例子中,這個數(shù)字的三個部分分別是: 符號(-)、位移量(-16)、定點部分(1.101)。 2) 規(guī)范化為了使表示法的固定部分統(tǒng)一,十進制科學記數(shù)法和

5、浮點表示法(即二進制科學記數(shù)法)都在小數(shù)點左邊使用了唯一的非零數(shù)碼,這稱為規(guī)范化。十進制系統(tǒng)中的這位非零數(shù)碼可能是19,而二進制系統(tǒng)中該數(shù)碼是1。則定點部分的表示方法都可以規(guī)范為以下形式: 十進制 d.xxxxxxxxxxxxxx 注意: d是19,每個x是09。二進制 1.yyyyyyyyyyyyyy 注意: 每個y是0或1。3) 符號、指數(shù)和尾數(shù) 在一個二進制數(shù)用浮點法表示并規(guī)范化之后,可以只存儲該數(shù)的三部分信息: 符號S、指數(shù)E和尾數(shù)M(小數(shù)點右邊的位)。例如,+(1000111.0101)2規(guī)范化后變成為:+ 1.000111010126??梢灾淮鎯σ韵氯糠忠员硎具@個數(shù)。符號S: +

6、指數(shù)E: 6尾數(shù)M: 00011101014)4) IEEE標準浮點數(shù)的存儲與表示 美國電氣和電子工程師協(xié)會(IEEE)定義了幾種存儲浮點數(shù)的標準。最常用的是單精度和雙精度兩種類型。單精度單精度格式使用32位存儲一個用浮點法表示的實數(shù)。符號占用1位(0為正,1為負),指數(shù)占用8位(使用偏移量127),尾數(shù)使用23位(無符號數(shù))。因為偏移量是127,該標準也稱為余127碼。雙精度雙精度格式使用64位來存儲一個用浮點法表示的實數(shù)。符號占用1位(0為正,1為負),指數(shù)占用11位(使用偏移量1023),尾數(shù)使用52位(無符號數(shù))。因為偏移量是1023,該標準也稱為余1023碼。一個十進制實數(shù)可以通過以

7、下步驟存儲為IEEE標準浮點數(shù)格式。(1) 在符號位S中存儲符號(0或1)。(2) 將數(shù)字轉(zhuǎn)換為二進制。(3) 規(guī)范化。(4) 計算指數(shù)E和尾數(shù)M的值。(5) 連接符號位S、指數(shù)E和尾數(shù)M,即為IEEE標準浮點數(shù)存儲格式。例例2-28 2-28 寫出十進制數(shù)5.75的單精度(余127碼)表示法。解: (1) 符號為正,所以S=0。(2) 十進制轉(zhuǎn)換為二進制: 5.75=(101.11)2。(3) 規(guī)范化: (101.11)2=(1.1011)222。(4) E=2+127=129=(10000001)2,M=1011。需要在M的右邊增加19個0使之成為23位。(5) 該表示法如下所示: 0 1

8、0000001 10110000000000000000000S E MMs 代表浮點數(shù)的符號代表浮點數(shù)的符號n 其位數(shù)反映浮點數(shù)的精度其位數(shù)反映浮點數(shù)的精度k 其位數(shù)反映浮點數(shù)的表示范圍其位數(shù)反映浮點數(shù)的表示范圍Es 和和 k 共同表示小數(shù)點的實際位置共同表示小數(shù)點的實際位置Es Ek-1 E1E0 Ms Mn-1 M1M0 E 階碼階碼M 尾數(shù)尾數(shù)階符階符數(shù)符數(shù)符階碼的階碼的數(shù)值部分數(shù)值部分尾數(shù)的數(shù)值部分尾數(shù)的數(shù)值部分小數(shù)點位置小數(shù)點位置浮點數(shù)的表示格式浮點數(shù)的表示格式原碼規(guī)格化后的尾數(shù) 正數(shù)為 0.1的形式 負數(shù)為 1.1的形式補碼規(guī)格化后的尾數(shù) 正數(shù)為 0.1的形式 負數(shù)為 1.0的形

9、式規(guī)格化規(guī)格化同一個浮點數(shù)表示不唯一,如:1.11 20, 0.111 21 設(shè)字長為設(shè)字長為1616位,其中階符位,其中階符1 1位,階碼位,階碼4 4位,尾位,尾符符1 1位,尾數(shù)位,尾數(shù)1010位,要求將位,要求將X=X=101101.0101101101.0101寫成寫成規(guī)格化浮點補碼數(shù),階碼和尾數(shù)均用補碼表示。規(guī)格化浮點補碼數(shù),階碼和尾數(shù)均用補碼表示。 X=-101101.0101X=-101101.01010.10110101010.10110101012 26 6 0011010100101011 階符階符 階碼階碼 尾符尾符 尾數(shù)尾數(shù) 設(shè)階碼用原碼表示,尾數(shù)用補碼表示,求設(shè)階碼

10、用原碼表示,尾數(shù)用補碼表示,求下列機器數(shù)的真值。下列機器數(shù)的真值。 0001010010011001階符階符 階碼階碼 尾符尾符 尾數(shù)尾數(shù) 解解:真值真值0.110110011122 2526272829 這種方案實現(xiàn)的前提是:系統(tǒng)使用這種方案實現(xiàn)的前提是:系統(tǒng)使用7單位單位的的ASCIl碼表示字符每個字符編碼用一個字碼表示字符每個字符編碼用一個字節(jié)存儲,這樣就有一個節(jié)存儲,這樣就有一個“空閑空閑”位可以用作位可以用作漢字或者字符的標志位。那么,為什么漢字漢字或者字符的標志位。那么,為什么漢字內(nèi)碼不直接用國標碼的區(qū)號和位號來表示,內(nèi)碼不直接用國標碼的區(qū)號和位號來表示,而要作一個加而要作一個加3

11、2的位移呢的位移呢?這是種以防萬一的這是種以防萬一的考慮。區(qū)、位號的取值范圍是考慮。區(qū)、位號的取值范圍是l94,加上,加上32后,碼值在后,碼值在33126之間。這樣就避過之間。這樣就避過ASCIl碼的控制字符區(qū)間。萬一系統(tǒng)沒有漢字處理碼的控制字符區(qū)間。萬一系統(tǒng)沒有漢字處理能力,把漢字內(nèi)碼字節(jié)的右能力,把漢字內(nèi)碼字節(jié)的右7位當作字符處理,位當作字符處理,也只是錯為可印出字符,引起混亂的程度也也只是錯為可印出字符,引起混亂的程度也許不那么嚴重。許不那么嚴重。 公式: 漢字機內(nèi)碼=漢字國標碼+8080H 漢字國標碼=漢字區(qū)位碼+2020H 變換: 漢字區(qū)位碼=漢字國標碼-2020H 漢字國標碼=漢字機內(nèi)碼-8080H 公式: 漢字區(qū)位碼=漢字機內(nèi)碼-AOAOH 漢字機內(nèi)碼=漢字區(qū)位碼+AOAOH303132 驗證:首先用記事本寫入兩個驗證:首先用記

溫馨提示

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

評論

0/150

提交評論