第2章 數(shù)據(jù)機(jī)器級(jí)表示_第1頁
第2章 數(shù)據(jù)機(jī)器級(jí)表示_第2頁
第2章 數(shù)據(jù)機(jī)器級(jí)表示_第3頁
第2章 數(shù)據(jù)機(jī)器級(jí)表示_第4頁
第2章 數(shù)據(jù)機(jī)器級(jí)表示_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Ch2: Data Representation數(shù)據(jù)的機(jī)器級(jí)表示數(shù)據(jù)的機(jī)器級(jí)表示第一講第一講 數(shù)值數(shù)據(jù)的表示數(shù)值數(shù)據(jù)的表示第二講第二講 非數(shù)值數(shù)據(jù)表示及非數(shù)值數(shù)據(jù)表示及 數(shù)據(jù)的寬度、存儲(chǔ)排列、糾數(shù)據(jù)的寬度、存儲(chǔ)排列、糾/ /檢錯(cuò)檢錯(cuò)2022-4-30第一講:數(shù)值數(shù)據(jù)的表示第一講:數(shù)值數(shù)據(jù)的表示主主 要要 內(nèi)內(nèi) 容容u定點(diǎn)數(shù)的表示定點(diǎn)數(shù)的表示 進(jìn)位計(jì)數(shù)制進(jìn)位計(jì)數(shù)制 定點(diǎn)數(shù)的二進(jìn)制編碼定點(diǎn)數(shù)的二進(jìn)制編碼- 原碼、補(bǔ)碼、移碼表示原碼、補(bǔ)碼、移碼表示 定點(diǎn)整數(shù)的表示定點(diǎn)整數(shù)的表示- 無符號(hào)整數(shù)、帶符號(hào)整數(shù)無符號(hào)整數(shù)、帶符號(hào)整數(shù)u浮點(diǎn)數(shù)格式和表示范圍浮點(diǎn)數(shù)格式和表示范圍u浮點(diǎn)數(shù)的規(guī)格化浮點(diǎn)數(shù)的規(guī)格化uI

2、EEE754浮點(diǎn)數(shù)標(biāo)準(zhǔn)浮點(diǎn)數(shù)標(biāo)準(zhǔn) 單精度浮點(diǎn)數(shù)、雙精度浮點(diǎn)數(shù)單精度浮點(diǎn)數(shù)、雙精度浮點(diǎn)數(shù) 特殊數(shù)的表示形式特殊數(shù)的表示形式uC語言程序中的整數(shù)類型、浮點(diǎn)數(shù)類型語言程序中的整數(shù)類型、浮點(diǎn)數(shù)類型u十進(jìn)制數(shù)表示十進(jìn)制數(shù)表示2022-4-30“轉(zhuǎn)換轉(zhuǎn)換”的概念在數(shù)據(jù)表示中的反映的概念在數(shù)據(jù)表示中的反映具體實(shí)現(xiàn)抽象概括感覺媒體信息樹、鏈表等結(jié)構(gòu)化數(shù)據(jù)描述int, float, array, struct等類型指令指定寄存器或內(nèi)存中數(shù)據(jù)ALU中運(yùn)算或總線上傳輸?shù)臄?shù)據(jù)邏輯門位信息問題(應(yīng)用) 算法程序(語言)指令集體系結(jié)構(gòu)(ISA)微體系結(jié)構(gòu)電路器件(晶體管)2022-4-30各類數(shù)據(jù)之間的轉(zhuǎn)換關(guān)系對(duì)連續(xù)信息

3、采樣,以使信息離散化對(duì)離散樣本用0和1進(jìn)行編碼定點(diǎn)運(yùn)算指令浮點(diǎn)運(yùn)算指令邏輯、位操作或字符處理指令2022-4-30信息的二進(jìn)制編碼信息的二進(jìn)制編碼u計(jì)算機(jī)的外部信息與內(nèi)部機(jī)器級(jí)數(shù)據(jù)計(jì)算機(jī)的外部信息與內(nèi)部機(jī)器級(jí)數(shù)據(jù) u機(jī)器級(jí)數(shù)據(jù)分兩大類:機(jī)器級(jí)數(shù)據(jù)分兩大類: 數(shù)值數(shù)據(jù):無符號(hào)整數(shù)、帶符號(hào)整數(shù)、浮點(diǎn)數(shù)(實(shí)數(shù))、十進(jìn)制數(shù)數(shù)值數(shù)據(jù):無符號(hào)整數(shù)、帶符號(hào)整數(shù)、浮點(diǎn)數(shù)(實(shí)數(shù))、十進(jìn)制數(shù) 非數(shù)值數(shù)據(jù):邏輯數(shù)(包括位串)、西文字符和漢字非數(shù)值數(shù)據(jù):邏輯數(shù)(包括位串)、西文字符和漢字u計(jì)算機(jī)內(nèi)部所有信息都用二進(jìn)制(即:計(jì)算機(jī)內(nèi)部所有信息都用二進(jìn)制(即:0和和1)進(jìn)行編碼)進(jìn)行編碼u用二進(jìn)制編碼的原因:用二進(jìn)制編碼

4、的原因: 制造二個(gè)穩(wěn)定態(tài)的物理器件容易制造二個(gè)穩(wěn)定態(tài)的物理器件容易 二進(jìn)制編碼、計(jì)數(shù)、運(yùn)算規(guī)則簡(jiǎn)單二進(jìn)制編碼、計(jì)數(shù)、運(yùn)算規(guī)則簡(jiǎn)單 正好與邏輯命題對(duì)應(yīng),便于邏輯運(yùn)算,并可方便地用邏輯電路實(shí)現(xiàn)正好與邏輯命題對(duì)應(yīng),便于邏輯運(yùn)算,并可方便地用邏輯電路實(shí)現(xiàn)算術(shù)運(yùn)算算術(shù)運(yùn)算u真值和機(jī)器數(shù)真值和機(jī)器數(shù) 機(jī)器數(shù):用機(jī)器數(shù):用0和和1編碼的計(jì)算機(jī)內(nèi)部的編碼的計(jì)算機(jī)內(nèi)部的0/1序列序列 真值:機(jī)器數(shù)真正的值,即:現(xiàn)實(shí)中帶正負(fù)號(hào)的數(shù)真值:機(jī)器數(shù)真正的值,即:現(xiàn)實(shí)中帶正負(fù)號(hào)的數(shù)首先考慮首先考慮數(shù)值數(shù)據(jù)的表示數(shù)值數(shù)據(jù)的表示C語言中哪些類型是數(shù)值數(shù)據(jù)?哪些是非?2022-4-30數(shù)值數(shù)據(jù)的表示數(shù)值數(shù)據(jù)的表示u數(shù)值數(shù)據(jù)表示

5、的三要素?cái)?shù)值數(shù)據(jù)表示的三要素 進(jìn)位計(jì)數(shù)制進(jìn)位計(jì)數(shù)制 定、浮點(diǎn)表示定、浮點(diǎn)表示 如何用二進(jìn)制編碼如何用二進(jìn)制編碼即:要確定一個(gè)數(shù)值數(shù)據(jù)的值必須先確定這三個(gè)要素。即:要確定一個(gè)數(shù)值數(shù)據(jù)的值必須先確定這三個(gè)要素。例如,機(jī)器數(shù)例如,機(jī)器數(shù) 01011001的值是多少?的值是多少?u進(jìn)位計(jì)數(shù)制進(jìn)位計(jì)數(shù)制 十進(jìn)制、二進(jìn)制、十六進(jìn)制、八進(jìn)制數(shù)及其相互轉(zhuǎn)換十進(jìn)制、二進(jìn)制、十六進(jìn)制、八進(jìn)制數(shù)及其相互轉(zhuǎn)換u定定/浮點(diǎn)表示浮點(diǎn)表示(解決小數(shù)點(diǎn)問題)(解決小數(shù)點(diǎn)問題) 定點(diǎn)整數(shù)、定點(diǎn)小數(shù)定點(diǎn)整數(shù)、定點(diǎn)小數(shù) 浮點(diǎn)數(shù)(可用一個(gè)定點(diǎn)小數(shù)和一個(gè)定點(diǎn)整數(shù)來表示)浮點(diǎn)數(shù)(可用一個(gè)定點(diǎn)小數(shù)和一個(gè)定點(diǎn)整數(shù)來表示)u定點(diǎn)數(shù)的編碼定點(diǎn)數(shù)

6、的編碼(解決正負(fù)號(hào)問題)(解決正負(fù)號(hào)問題) 原碼、補(bǔ)碼、反碼、移碼原碼、補(bǔ)碼、反碼、移碼 (反碼很少用)(反碼很少用)答案是:不知道!答案是:不知道!2022-4-30 Sign and Magnitude (原碼的表示)(原碼的表示)BinaryDecimal0123456700000001001000110100010101100111u 容易理解容易理解, , 但是:但是: 0 0 的表示不唯一,故不利于程序員編程的表示不唯一,故不利于程序員編程 加、減運(yùn)算方式不統(tǒng)一加、減運(yùn)算方式不統(tǒng)一 需額外對(duì)符號(hào)位進(jìn)行處理,故不利于硬件設(shè)計(jì)需額外對(duì)符號(hào)位進(jìn)行處理,故不利于硬件設(shè)計(jì) 特別當(dāng)特別當(dāng) ab

7、 ab時(shí),實(shí)現(xiàn)時(shí),實(shí)現(xiàn) a-b a-b比較困難比較困難從從 5050年代開始,整數(shù)都采用補(bǔ)碼來表示年代開始,整數(shù)都采用補(bǔ)碼來表示但浮點(diǎn)數(shù)的尾數(shù)用原碼定點(diǎn)小數(shù)表示但浮點(diǎn)數(shù)的尾數(shù)用原碼定點(diǎn)小數(shù)表示BinaryDecimal-0-1-2-3-4-5-6-7100010011010101111001101111011112022-4-30補(bǔ)碼特性補(bǔ)碼特性 - 模運(yùn)算(模運(yùn)算(modular運(yùn)算)運(yùn)算)時(shí)鐘是一種模時(shí)鐘是一種模12系統(tǒng)系統(tǒng) 假定鐘表時(shí)針指向假定鐘表時(shí)針指向10點(diǎn),要將它撥向點(diǎn),點(diǎn),要將它撥向點(diǎn), 則有兩種撥法:則有兩種撥法: 倒撥倒撥4格:格:10- 4 = 6 順撥順撥8格:格:10+

8、8 = 18 6 (mod 12) 模模12系統(tǒng)中:系統(tǒng)中: 10- 4 10+8 (mod 12) - 4 8 (mod 12) 則,稱則,稱8是是- 4對(duì)模對(duì)模12的補(bǔ)碼的補(bǔ)碼 (即:(即:- 4的模的模12補(bǔ)碼等于補(bǔ)碼等于8)。)。 同樣有同樣有 -3 9 (mod 12) -5 7 (mod 12)等等結(jié)論結(jié)論2 2: 對(duì)于某一確定的模,某數(shù)減去小于模的另一數(shù),總可對(duì)于某一確定的模,某數(shù)減去小于模的另一數(shù),總可以用該數(shù)加上另一數(shù)負(fù)數(shù)的補(bǔ)碼來代替。以用該數(shù)加上另一數(shù)負(fù)數(shù)的補(bǔ)碼來代替。補(bǔ)碼(補(bǔ)碼(modular運(yùn)算):運(yùn)算):+ 和和 的統(tǒng)一的統(tǒng)一 重要概念:重要概念:在一個(gè)模運(yùn)算系統(tǒng)中,

9、一個(gè)數(shù)與它除以在一個(gè)模運(yùn)算系統(tǒng)中,一個(gè)數(shù)與它除以“模?!焙蟮挠鄶?shù)等價(jià)。后的余數(shù)等價(jià)。結(jié)論結(jié)論1 1: 一個(gè)負(fù)數(shù)的補(bǔ)碼等于模減該負(fù)數(shù)的絕對(duì)值。一個(gè)負(fù)數(shù)的補(bǔ)碼等于模減該負(fù)數(shù)的絕對(duì)值。2022-4-30補(bǔ)碼的表示補(bǔ)碼的表示現(xiàn)實(shí)世界的模運(yùn)算系統(tǒng)舉例例例1:“鐘表鐘表”模運(yùn)算系統(tǒng)模運(yùn)算系統(tǒng) 假定時(shí)針只能順撥,從假定時(shí)針只能順撥,從10點(diǎn)倒撥點(diǎn)倒撥4格后是幾點(diǎn)?格后是幾點(diǎn)?10- 4 = 10+(12- 4) = 10+8 = 6 (mod 12)例例2:“4位十進(jìn)制數(shù)位十進(jìn)制數(shù)” 模運(yùn)算系統(tǒng)模運(yùn)算系統(tǒng) 假定算盤只有四檔,且只能做加法,則在算盤上計(jì)算假定算盤只有四檔,且只能做加法,則在算盤上計(jì)算 9828

10、-1928等于多少?等于多少?9828-1928=9828+(104-1928) =9828+8072 = 1 7900 =7900(mod 104)取模即只留余數(shù),高位取模即只留余數(shù),高位“1”1”被丟棄!被丟棄!相當(dāng)于只有低相當(dāng)于只有低4 4位留在算盤上。位留在算盤上。2022-4-30計(jì)算機(jī)中的運(yùn)算器是模運(yùn)算系統(tǒng)計(jì)算機(jī)中的運(yùn)算器是模運(yùn)算系統(tǒng) 8位二進(jìn)制加法器模運(yùn)算系統(tǒng)位二進(jìn)制加法器模運(yùn)算系統(tǒng) 計(jì)算計(jì)算0111 1111 - 0100 0000 = ? 0111 1111 - 0100 0000 = 0111 1111 + (28- 0100 0000) =0111 1111 + 1100

11、 0000 = 1 0011 1111 (mod 28) = 0011 1111只留余數(shù),只留余數(shù),“1”1”被丟棄被丟棄結(jié)論結(jié)論1 1: 一個(gè)負(fù)數(shù)的補(bǔ)碼等于對(duì)應(yīng)正數(shù)補(bǔ)碼的一個(gè)負(fù)數(shù)的補(bǔ)碼等于對(duì)應(yīng)正數(shù)補(bǔ)碼的“各位取各位取反、末位加反、末位加1 1”2022-4-30運(yùn)算器是一個(gè)模運(yùn)算系統(tǒng),適合用補(bǔ)碼表示和運(yùn)算運(yùn)算器是一個(gè)模運(yùn)算系統(tǒng),適合用補(bǔ)碼表示和運(yùn)算0000000110000010010011101111011101011010101111001101001101101001計(jì)算機(jī)中運(yùn)算器只有有限位。假定為計(jì)算機(jī)中運(yùn)算器只有有限位。假定為n位,則運(yùn)算結(jié)果只能保留低位,則運(yùn)算結(jié)果只能保留低n位,

12、位,故可看成是個(gè)只有故可看成是個(gè)只有n檔的二進(jìn)制算盤。所以,其模為檔的二進(jìn)制算盤。所以,其模為2n 。當(dāng)當(dāng)n=4時(shí),共有時(shí),共有16個(gè)機(jī)器數(shù):個(gè)機(jī)器數(shù):0000 1111,可看成是模為,可看成是模為24 的鐘表系統(tǒng)。真值的范圍為的鐘表系統(tǒng)。真值的范圍為 -8 +7補(bǔ)碼的定義補(bǔ)碼的定義 假定補(bǔ)碼有假定補(bǔ)碼有n位,則:位,則:定點(diǎn)整數(shù):定點(diǎn)整數(shù):X補(bǔ)補(bǔ)= 2n + X (- -2nX 2n ,mod 2n)定點(diǎn)小數(shù):定點(diǎn)小數(shù):X補(bǔ)補(bǔ)= 2 + X (- -1X1,mod 2)注:實(shí)際上在計(jì)算機(jī)中并不使用定點(diǎn)注:實(shí)際上在計(jì)算機(jī)中并不使用定點(diǎn)小數(shù)表示!不需要掌握這個(gè)知識(shí)點(diǎn)。小數(shù)表示!不需要掌握這個(gè)知識(shí)

13、點(diǎn)。2022-4-30求特殊數(shù)的補(bǔ)碼求特殊數(shù)的補(bǔ)碼 -1補(bǔ)補(bǔ)= 2n - 001 = 111(n個(gè)個(gè)1) (mod 2n)假定機(jī)器數(shù)有假定機(jī)器數(shù)有n位位 -2n-1補(bǔ)補(bǔ)= 2n - 2n-1 = 100(n-1個(gè)個(gè)0) (mod 2n) -1.0補(bǔ)補(bǔ)= 2 - 1.0 = 1.000(n-1個(gè)個(gè)0) (mod 2) +0補(bǔ)補(bǔ)= -0補(bǔ)補(bǔ)= 000(n個(gè)個(gè)0) 注:計(jì)算機(jī)中并不會(huì)出現(xiàn)注:計(jì)算機(jī)中并不會(huì)出現(xiàn)-1.0的補(bǔ)碼,這里只是想說明的補(bǔ)碼,這里只是想說明同一個(gè)真值在機(jī)器中可能有不同的機(jī)器數(shù)!同一個(gè)真值在機(jī)器中可能有不同的機(jī)器數(shù)!2022-4-30補(bǔ)碼與真值之間的簡(jiǎn)便轉(zhuǎn)換補(bǔ)碼與真值之間的簡(jiǎn)便轉(zhuǎn)換

14、例例: 設(shè)機(jī)器數(shù)有設(shè)機(jī)器數(shù)有8位,求位,求123和和-123的補(bǔ)碼表示。的補(bǔ)碼表示。解解: 123 = 127- 4 = 01111111B - 100B = 01111011B -123= - 01111011B 01111011補(bǔ)補(bǔ)= 28 + 01111011 = 100000000 + 01111011 = 01111011 (mod 28),即,即 7BH。 -01111011補(bǔ)補(bǔ)= 28 01111011 = 10000 0000 - 01111011 = 1111 1111 0111 1011 +1 = 1000 0100 +1 = 1000 0101,即,即 85H。如何快速得

15、到如何快速得到123的二進(jìn)制表示?的二進(jìn)制表示?各位取反,末位加各位取反,末位加12022-4-30 Twos Complement (補(bǔ)碼的表示)(補(bǔ)碼的表示)u正數(shù):符號(hào)位(正數(shù):符號(hào)位(sign bit)為)為0,數(shù)值部分不變,數(shù)值部分不變u負(fù)數(shù):符號(hào)位為負(fù)數(shù):符號(hào)位為1,數(shù)值部分,數(shù)值部分“各位取反,末位加各位取反,末位加1”+0和和-0表示唯一表示唯一變形(模變形(模4 4)補(bǔ)碼:雙符號(hào),用于存放可溢出的中間結(jié)果。)補(bǔ)碼:雙符號(hào),用于存放可溢出的中間結(jié)果。值太大,用值太大,用4 4位補(bǔ)碼無法表示,故位補(bǔ)碼無法表示,故“溢溢出出”!但用變形補(bǔ)碼可保留符號(hào)位和最!但用變形補(bǔ)碼可保留符號(hào)位

16、和最高數(shù)值位。高數(shù)值位。BitwiseInverse111111101101110010111010100110000111Decimal012345678補(bǔ)碼補(bǔ)碼000000010010001101000101011001111000Decimal-0-1-2-3-4-5-6-7-8 補(bǔ)碼補(bǔ)碼000011111110110111001011101010011000變形補(bǔ)碼變形補(bǔ)碼000000000100010000110010000101001100011101000變形補(bǔ)碼變形補(bǔ)碼0000011111111101110111100110111101011001110002022-4-30如

17、何求補(bǔ)碼的真值如何求補(bǔ)碼的真值根據(jù)補(bǔ)碼各位上的根據(jù)補(bǔ)碼各位上的“權(quán)權(quán)”,可以求出一個(gè)補(bǔ)碼的值,可以求出一個(gè)補(bǔ)碼的值真值范圍:真值范圍: 令:令:A補(bǔ)補(bǔ)= an-1an-2 a1a0 則:則: A= -an-1.2n-1+an-2 .2n-2+ a1 .21+ a0 .20 符號(hào)為符號(hào)為0 0,則為正數(shù),數(shù)值部分同,則為正數(shù),數(shù)值部分同符號(hào)為符號(hào)為1 1,則為負(fù)數(shù),數(shù)值各位取反,末位加,則為負(fù)數(shù),數(shù)值各位取反,末位加1 1例如:補(bǔ)碼例如:補(bǔ)碼“11010110”的真值為:的真值為:-0101010=-(32+8+2)=-422022-4-30Excess (biased) notion- 移碼表

18、示移碼表示什么是什么是“excess (biased) notation-移碼表示移碼表示”? 將每一個(gè)數(shù)值加上一個(gè)偏置常數(shù)(將每一個(gè)數(shù)值加上一個(gè)偏置常數(shù)( Excess / bias)一般來說,當(dāng)編碼位數(shù)為一般來說,當(dāng)編碼位數(shù)為n時(shí),時(shí),bias取取 2n-1 Ex. n=4: Ebiased = E+ 23 ( bias= 23 =1000B) -8 (+8) 0000B -7 (+8) 0001B 0 (+8) 1000B +7 (+8) 1111B為什么要用移碼來表示指數(shù)(階碼)為什么要用移碼來表示指數(shù)(階碼)? 便于浮點(diǎn)數(shù)加減運(yùn)算時(shí)的對(duì)階操作(比較大小)便于浮點(diǎn)數(shù)加減運(yùn)算時(shí)的對(duì)階操作

19、(比較大?。├豪?.01 x2-1+1.11 x23 簡(jiǎn)化比較簡(jiǎn)化比較補(bǔ)碼:補(bǔ)碼: 111 011 ? (-1) (3)1.01 x2-1+4+1.11 x23+4 移碼:移碼:011 111 (3) (7)移碼主要用來表示移碼主要用來表示浮點(diǎn)數(shù)階碼!浮點(diǎn)數(shù)階碼!0 0的移碼表示唯一的移碼表示唯一移碼和補(bǔ)碼僅第一位不同移碼和補(bǔ)碼僅第一位不同2022-4-30 Unsigned integer(無符號(hào)整數(shù)無符號(hào)整數(shù))u機(jī)器中字的位排列順序有兩種方式:(例:機(jī)器中字的位排列順序有兩種方式:(例:32位字位字: 0010112) 高到低位從左到右:高到低位從左到右:0000 0000 0000

20、0000 0000 0000 0000 1011 高到低位從右到左:高到低位從右到左:1101 0000 0000 0000 0000 0000 0000 0000 Leftmost和和rightmost這兩個(gè)詞有歧義,故用這兩個(gè)詞有歧義,故用LSB(Least Significant Bit)來表示最低有效位,用來表示最低有效位,用MSB來表示最高有效位來表示最高有效位 高位到低位多采用從左往右排列高位到低位多采用從左往右排列u一般在全部是正數(shù)運(yùn)算且不出現(xiàn)負(fù)值結(jié)果的場(chǎng)合下,可使用無符號(hào)數(shù)表一般在全部是正數(shù)運(yùn)算且不出現(xiàn)負(fù)值結(jié)果的場(chǎng)合下,可使用無符號(hào)數(shù)表示。例如,地址運(yùn)算,編號(hào)表示,等等示。例如

21、,地址運(yùn)算,編號(hào)表示,等等u無符號(hào)數(shù)的編碼中無符號(hào)數(shù)的編碼中沒有符號(hào)位沒有符號(hào)位u能表示的最大值大于位數(shù)相同的帶符號(hào)整數(shù)的最大值(能表示的最大值大于位數(shù)相同的帶符號(hào)整數(shù)的最大值(Why?)?) 例如,例如,8位無符號(hào)整數(shù)最大是位無符號(hào)整數(shù)最大是255(1111 1111) 而而8位帶符號(hào)整數(shù)最大為位帶符號(hào)整數(shù)最大為127(0111 1111)u總是整數(shù),所以很多時(shí)候就總是整數(shù),所以很多時(shí)候就簡(jiǎn)稱為簡(jiǎn)稱為“無符號(hào)數(shù)無符號(hào)數(shù)”MSB LSB2022-4-30Signed integer(帶符號(hào)整數(shù),定點(diǎn)整數(shù))(帶符號(hào)整數(shù),定點(diǎn)整數(shù))u計(jì)算機(jī)必須能處理正數(shù)計(jì)算機(jī)必須能處理正數(shù)(positive) 和

22、負(fù)數(shù)和負(fù)數(shù)(negative),MSB表示數(shù)符表示數(shù)符u有三種定點(diǎn)編碼方式有三種定點(diǎn)編碼方式 Signed magnitude (原碼)原碼) 現(xiàn)用來表示浮點(diǎn)(實(shí))數(shù)的尾數(shù)現(xiàn)用來表示浮點(diǎn)(實(shí))數(shù)的尾數(shù) Ones complement (反碼)反碼) 現(xiàn)已不用于表示數(shù)值數(shù)據(jù)現(xiàn)已不用于表示數(shù)值數(shù)據(jù) Twos complement (補(bǔ)碼)補(bǔ)碼) 50年代以來,所有計(jì)算機(jī)都用補(bǔ)碼來表示定點(diǎn)整數(shù)年代以來,所有計(jì)算機(jī)都用補(bǔ)碼來表示定點(diǎn)整數(shù)u為什么用補(bǔ)碼表示帶符號(hào)整數(shù)?為什么用補(bǔ)碼表示帶符號(hào)整數(shù)? 補(bǔ)碼運(yùn)算系統(tǒng)是模運(yùn)算系統(tǒng),加、減運(yùn)算統(tǒng)一補(bǔ)碼運(yùn)算系統(tǒng)是模運(yùn)算系統(tǒng),加、減運(yùn)算統(tǒng)一 數(shù)數(shù)0的表示唯一,方便使用

23、的表示唯一,方便使用 比原碼和反碼多表示一個(gè)最小負(fù)數(shù)比原碼和反碼多表示一個(gè)最小負(fù)數(shù) 與移碼相比,其符號(hào)位和真值的符號(hào)對(duì)應(yīng)關(guān)系清楚與移碼相比,其符號(hào)位和真值的符號(hào)對(duì)應(yīng)關(guān)系清楚2022-4-30帶符號(hào)整數(shù)和無符號(hào)數(shù)的比較帶符號(hào)整數(shù)和無符號(hào)數(shù)的比較u擴(kuò)充操作擴(kuò)充操作有差別有差別 例如,例如,MIPS提供了兩種加載指令(提供了兩種加載指令(load byte unsigned / load byte)-無符號(hào)數(shù):無符號(hào)數(shù):lbu $t0, 0($s0) ; $t0高高24位補(bǔ)位補(bǔ)0 (稱為(稱為0擴(kuò)展)擴(kuò)展)-帶符號(hào)整數(shù):帶符號(hào)整數(shù): lb $t0, 0($s0) ; $t0高高24位補(bǔ)符位補(bǔ)符 (稱

24、為符號(hào)擴(kuò)展)(稱為符號(hào)擴(kuò)展)u數(shù)的比較有差異數(shù)的比較有差異 無符號(hào)數(shù):無符號(hào)數(shù):MSB為為1的數(shù)比的數(shù)比MSB為為0的數(shù)大的數(shù)大 帶符號(hào)整數(shù):帶符號(hào)整數(shù): MSB為為1的數(shù)比的數(shù)比MSB為為0的數(shù)小的數(shù)小 例如,例如,MIPS中提供了不同的比較指令,如:中提供了不同的比較指令,如:-無符號(hào)數(shù):無符號(hào)數(shù):sltu $t0, $s0, $s1 (set less than unsigned)-帶符號(hào)整數(shù):帶符號(hào)整數(shù): slt $t1, $s0, $s1 (set less than) 假定:假定: $s0=1111 1111 1111 1111 1111 1111 1111 1111 $s1=00

25、00 0000 0000 0000 0000 0000 0000 0001 則:則:$t0和和$t1分別為多少?分別為多少? 答案:答案:$t0和和$t1分別為分別為0和和1。u溢出判斷有差異(無符號(hào)數(shù)根據(jù)最高位是否有進(jìn)位判斷溢出,通常不判)溢出判斷有差異(無符號(hào)數(shù)根據(jù)最高位是否有進(jìn)位判斷溢出,通常不判) MIPS規(guī)定:無符號(hào)數(shù)運(yùn)算溢出時(shí),不產(chǎn)生規(guī)定:無符號(hào)數(shù)運(yùn)算溢出時(shí),不產(chǎn)生“溢出異常溢出異常”SKIP2022-4-30擴(kuò)展操作舉例擴(kuò)展操作舉例例例1(擴(kuò)展操作):在(擴(kuò)展操作):在32位機(jī)器上輸出位機(jī)器上輸出si, usi, i, ui的的十進(jìn)制(真值)和十六進(jìn)制值(機(jī)器數(shù))是什么?十進(jìn)制(

26、真值)和十六進(jìn)制值(機(jī)器數(shù))是什么?short si = -32768;unsigned short usi = si;int i = si;unsingned ui = usi ;si = -32768 80 00usi = 32768 80 00i = -32768 FF FF 80 00 ui = 32768 00 00 80 00BACK機(jī)器數(shù)機(jī)器數(shù)真值真值提示:32768=215=1000 0000 0000 0000B現(xiàn)象:帶符號(hào)整數(shù):符號(hào)擴(kuò)展無符號(hào)數(shù):0擴(kuò)展2022-4-30C語言程序中的整數(shù)語言程序中的整數(shù)關(guān)系表達(dá)式關(guān)系表達(dá)式運(yùn)算類型運(yùn)算類型結(jié)果結(jié)果說明說明0 = 0U-1 0

27、-1 -2147483647-12147483647U -2147483647-12147483647 (int) 2147483648U-1 -2(unsigned) -1 -2無符號(hào)數(shù):無符號(hào)數(shù):unsigned int ( short / long);帶符號(hào)整數(shù):;帶符號(hào)整數(shù): int ( short / long)常在一個(gè)數(shù)的后面加一個(gè)常在一個(gè)數(shù)的后面加一個(gè)“u u”或或“U U”表示無符號(hào)數(shù)表示無符號(hào)數(shù)若同時(shí)有無符號(hào)和帶符號(hào)整數(shù),則若同時(shí)有無符號(hào)和帶符號(hào)整數(shù),則C編譯器將帶符號(hào)整數(shù)強(qiáng)制轉(zhuǎn)換為無符號(hào)數(shù)編譯器將帶符號(hào)整數(shù)強(qiáng)制轉(zhuǎn)換為無符號(hào)數(shù)假定以下關(guān)系表達(dá)式在假定以下關(guān)系表達(dá)式在3232位

28、用補(bǔ)碼表示的機(jī)器上執(zhí)行,結(jié)果是什么?位用補(bǔ)碼表示的機(jī)器上執(zhí)行,結(jié)果是什么?2022-4-30C語言程序中的整數(shù)語言程序中的整數(shù)關(guān)系表達(dá)式關(guān)系表達(dá)式類類型型結(jié)結(jié)果果說明說明0 = = 0U-1 0-1 -2147483647 - 12147483647U -2147483647 - 12147483647 (int) 2147483648U-1 -2(unsigned) -1 -2無無帶帶無無帶帶無無帶帶帶帶無無11 0*1 0* 1*11000B = 000B111B (-1) 000B(0)0111B (231-1) 1000B (-231)0111B (231-1) 1000B (-231

29、)111B (-1) 1110B (-2)111B (232-1) 1110B (232-2)帶帶* *的結(jié)果與常規(guī)預(yù)想的相反!的結(jié)果與常規(guī)預(yù)想的相反!2022-4-30Example:mantissa (尾數(shù)尾數(shù)) exponent(階碼、指數(shù)階碼、指數(shù)) 6.02 x 10 21 decimal point radix (base,基,基) Normalized form(規(guī)格化形式)(規(guī)格化形式): 小數(shù)點(diǎn)前只有一位非小數(shù)點(diǎn)前只有一位非0數(shù)數(shù) 同一個(gè)數(shù)有多種表示形式。例:對(duì)于數(shù)同一個(gè)數(shù)有多種表示形式。例:對(duì)于數(shù) 1/1,000,000,000 Normalized (唯一的規(guī)格化形式唯一

30、的規(guī)格化形式): 1.0 x 10-9 Unnormalized(非規(guī)格化形式不唯一)(非規(guī)格化形式不唯一): 0.1 x 10-8, 10.0 x 10-10科學(xué)計(jì)數(shù)法(Scientific Notation)與浮點(diǎn)數(shù) mantissa(尾數(shù))(尾數(shù)) exponent(指數(shù))(指數(shù)) 0.101two x 2 -10 binary point 基為基為2for Binary Numbers:只要對(duì)尾數(shù)和指數(shù)分別編碼,就可表示一個(gè)浮點(diǎn)數(shù)(即:實(shí)數(shù))只要對(duì)尾數(shù)和指數(shù)分別編碼,就可表示一個(gè)浮點(diǎn)數(shù)(即:實(shí)數(shù))2022-4-30浮點(diǎn)數(shù)浮點(diǎn)數(shù)(Floating Point)的表示范圍的表示范圍例:畫出

31、下述例:畫出下述32位浮點(diǎn)數(shù)格式的規(guī)格化數(shù)的表示范圍。位浮點(diǎn)數(shù)格式的規(guī)格化數(shù)的表示范圍。 0 1 8 9 31 第第0 0位數(shù)符位數(shù)符S S;第;第1 18 8位為位為8 8位移碼表示階碼位移碼表示階碼E E(偏置常數(shù)為(偏置常數(shù)為128128);第);第9 93131位為位為2424位二進(jìn)制原碼小數(shù)表示的尾數(shù)位二進(jìn)制原碼小數(shù)表示的尾數(shù)M M。規(guī)格化尾數(shù)的小數(shù)點(diǎn)后第一位。規(guī)格化尾數(shù)的小數(shù)點(diǎn)后第一位總是總是1 1,故規(guī)定第一位默認(rèn)的,故規(guī)定第一位默認(rèn)的“1 1”不明顯表示出來。這樣可用不明顯表示出來。這樣可用2323個(gè)數(shù)位表個(gè)數(shù)位表示示2424位尾數(shù)。位尾數(shù)。S階碼階碼E尾數(shù)尾數(shù)M最大正數(shù):最大

32、正數(shù):0.111 x 2111 =(1-2-24) x 2127 最小正數(shù):最小正數(shù):0.100 x 2000 =(1/2) x 2-128 因?yàn)樵a是對(duì)稱的,所以其表示范圍關(guān)于原點(diǎn)對(duì)稱。因?yàn)樵a是對(duì)稱的,所以其表示范圍關(guān)于原點(diǎn)對(duì)稱。機(jī)器機(jī)器0 0:尾數(shù)為:尾數(shù)為0 0 或或 落在下溢區(qū)中的數(shù)落在下溢區(qū)中的數(shù)浮點(diǎn)數(shù)范圍比定點(diǎn)數(shù)大,但數(shù)的個(gè)數(shù)沒變多,故數(shù)之間更稀疏,且不均勻浮點(diǎn)數(shù)范圍比定點(diǎn)數(shù)大,但數(shù)的個(gè)數(shù)沒變多,故數(shù)之間更稀疏,且不均勻 正下溢 負(fù)下溢 - (1-2-24) 2127 數(shù)軸 零 可表示的正數(shù) 可表示的負(fù)數(shù) -2-129129 0 2-129129 (1-2-24) 2127 正上

33、溢 負(fù)上溢 +/-0.1xxxxx 2E2022-4-30浮點(diǎn)數(shù)的表示浮點(diǎn)數(shù)的表示Normal format(規(guī)格化數(shù)形式)(規(guī)格化數(shù)形式) : +/-1.xxxxxxxxxx 2Exponent32-bit 規(guī)格化數(shù):規(guī)格化數(shù): 31 0 S Exponent Significand 1 bit ? bits ? bits S 是符號(hào)位(是符號(hào)位(Sign) Exponent用移碼(增碼)來表示用移碼(增碼)來表示 Significand 表示表示 xxxxxxxxxxxxx,尾數(shù)部分,尾數(shù)部分 (基可以是基可以是 2/ 4 / 8 / 16,約定信息,無需顯式表示,約定信息,無需顯式表示

34、)早期的計(jì)算機(jī),各自定義自己的浮點(diǎn)數(shù)格式早期的計(jì)算機(jī),各自定義自己的浮點(diǎn)數(shù)格式問題:浮點(diǎn)數(shù)表示不統(tǒng)一會(huì)帶來什么問題?問題:浮點(diǎn)數(shù)表示不統(tǒng)一會(huì)帶來什么問題?規(guī)定:規(guī)定:小數(shù)點(diǎn)前總是小數(shù)點(diǎn)前總是“1 1”,故可隱含表示故可隱含表示注意:和前面例子的規(guī)定不注意:和前面例子的規(guī)定不太一樣太一樣, ,顯然這里更合理顯然這里更合理! !2022-4-30“Father” of the IEEE 754 standard現(xiàn)在所有計(jì)算機(jī)都采用現(xiàn)在所有計(jì)算機(jī)都采用IEEE 754IEEE 754來表示浮點(diǎn)數(shù)來表示浮點(diǎn)數(shù)19701970年代后期年代后期, IEEE, IEEE成立委員會(huì)著手制定浮點(diǎn)數(shù)標(biāo)準(zhǔn)成立委員會(huì)

35、著手制定浮點(diǎn)數(shù)標(biāo)準(zhǔn)19851985年完成浮點(diǎn)數(shù)標(biāo)準(zhǔn)年完成浮點(diǎn)數(shù)標(biāo)準(zhǔn)IEEE 754IEEE 754的制定的制定Prof. William Kahan /wkahan/ieee754status/754story.htmlThis standard was primarily the work of one person, UC Berkeley math professor William Kahan. 直到直到8080年代初,各個(gè)機(jī)器內(nèi)部的浮點(diǎn)數(shù)表示格式還沒有統(tǒng)一年代初,各個(gè)機(jī)器內(nèi)部的浮點(diǎn)數(shù)表示格式還沒有統(tǒng)一 因而相互不兼容,機(jī)器之間傳送數(shù)據(jù)時(shí),帶來麻煩

36、因而相互不兼容,機(jī)器之間傳送數(shù)據(jù)時(shí),帶來麻煩 2022-4-30IEEE 754 Floating Point Standard Single Precision : ( Double Precision is similar ) S Exponent Significand 1 bit 8 bits 23 bits Sign bit: 1 表示表示negative ; 0表示表示 positiveSignificand(尾數(shù))(尾數(shù)): 規(guī)格化尾數(shù)最高位總是規(guī)格化尾數(shù)最高位總是1,所以隱含表示,省,所以隱含表示,省1位位 1 + 23 bits ( single),),1 + 52 bits

37、 (double)Exponent(階碼(階碼 / 指數(shù))指數(shù)): SP規(guī)格化數(shù)階碼范圍為規(guī)格化數(shù)階碼范圍為0000 0001 (-126) 1111 1110 (127)bias為為127 (single), 1023 (double)SP: (-1)S x (1 + Significand) x 2(Exponent-127)DP: (-1)S x (1 + Significand) x 2(Exponent-1023)全全0 0和全和全1 1用來表示特殊值!用來表示特殊值!為什么用為什么用127127?若用?若用128,128,則階碼范圍為多少?則階碼范圍為多少?0000 0001 (-

38、127) 1111 1110 (126)規(guī)格化數(shù):+/-1.xxxxxxxxxxtwo x 2Exponent2022-4-30Ex: Converting Binary FP to Decimal10111 1101 110 0000 0000 0000 0000 0000Sign: 1 = negativeExponent: 0111 1101two = 125ten Bias adjustment: 125 - 127 = -2Significand: 1 + 1x2-1+ 1x2-2 + 0 x2-3 + 0 x2-4 + 0 x2-5 +. =1+2-1 +2-2 = 1+0.5 +

39、0.25 = 1.75Represents: -1.75tenx2-2 = - 0.4375(-1)S x (1 + Significand) x 2(Exponent-127)BEE00000H is the hex. Rep. Of an IEEE 754 SP FP number2022-4-30Ex: Converting Decimal to FP-12.75 1. Denormalize: -12.752. Convert integer part: 12 = 8 + 4 = 110023. Convert fractional part: .75 = .5 + .25 = .11

40、24. Put parts together and normalize: 1100.11 = 1.10011 x 235. Convert exponent: 127 + 3 = 128 + 2 = 1000 0010211000 0010 100 1100 0000 0000 0000 0000The Hex rep. is C14C0000H2022-4-30Normalized numbers(規(guī)格化數(shù))(規(guī)格化數(shù))Exponent Significand Object1-254 anything Norms implicit leading 10 0 ?0 nonzero ? 255

41、 0 ?255 nonzero ?前面的定義都是針對(duì)規(guī)格化數(shù)(前面的定義都是針對(duì)規(guī)格化數(shù)(normalized form)How about other patterns?2022-4-30Representation for 0How to represent 0? exponent: all zeros significand: all zeros What about sign? Both cases valid. +0: 0 00000000 00000000000000000000000 -0: 1 00000000 000000000000000000000002022-4-30R

42、epresentation for +/- How to represent +/-? Exponent : all ones (11111111B = 255) Significand: all zeros + : 0 11111111 00000000000000000000000 - : 1 11111111 00000000000000000000000Operations 5.0 / 0 = +, -5.0 / 0 = - 5+(+) = +, (+)+(+) = + 5 - (+) = -, (-) - (+) = - etc為什么要這樣處理為什么要這樣處理? 可以利用可以利用+/

43、-作比較。作比較。 例如:例如:X/0Y可作為有效比較可作為有效比較In FP, 除數(shù)為除數(shù)為0的結(jié)果是的結(jié)果是 +/- , 不是溢出異常不是溢出異常.(整數(shù)除(整數(shù)除0為異常)為異常) :infinity2022-4-30Representation for “Not a Number”Sqrt (- 4.0) = ? 0/0 = ? Called Not a Number (NaN) - “非數(shù)非數(shù)”O(jiān)perations sqrt (-4.0) = NaN 0/0 = NaN op (NaN,x) = NaN +(-) = NaN +- (+) = NaN / = NaN etc. How

44、 to represent NaN Exponent = 255 Significand: nonzero NaNs can help with debugging2022-4-30What have we defined so far? (for SP)Representation for Denorms(非規(guī)格化數(shù)非規(guī)格化數(shù)) Used to represent Denormalized numbers Exponent Significand Object0 0 +/-00 nonzero Denorms 1-254 anything Norms implicit leading 125

45、5 0 +/- infinity255 nonzero NaN2022-4-30Representation for Denorms2-1262-1252-1242-1231.00 x2-126 1.11x2-1260.00 x2-126 0.11x2-1262-1262-1252-1242-12300GAP Normalized numbersDenorms(-1)s0.aaa 2-1262022-4-30Questions about IEEE 754uWhats the range of representable values?The largest number for single

46、: +1.111X 2127 How about double?uWhat about following type converting: not always true! if ( i = (int) (float) i) ) printf (“true”); if ( f = (float) (int) f) ) printf (“true”); uHow about FP add associative? FALSE! x = 1.5 x 1038, y = 1.5 x 1038, z = 1.0 (x+y)+z = (1.5x1038+1.5x1038 ) +1.0 = 1.0 x+

47、(y+z) = 1.5x1038+ (1.5x1038+1.0) = 0.0How about double? How about double?True!Not always true!約約 +3.4 X 1038約約 +1.8 X 103082022-4-30u數(shù)值數(shù)據(jù)(數(shù)值數(shù)據(jù)(numerical data)的兩種表示)的兩種表示Binary (二進(jìn)制數(shù)二進(jìn)制數(shù))o 定點(diǎn)整數(shù):定點(diǎn)整數(shù):Fixed-point number (integer)o Unsigned and signed into 浮點(diǎn)數(shù):浮點(diǎn)數(shù):Floating-point number (real number)Deci

48、mal (十進(jìn)制數(shù)十進(jìn)制數(shù))o 用用ASCII碼表示碼表示o 用用BCD(Binary coded Decimal)碼表示)碼表示u計(jì)算機(jī)中為什么要用十進(jìn)制數(shù)表示數(shù)值?計(jì)算機(jī)中為什么要用十進(jìn)制數(shù)表示數(shù)值? 日常使用的都是十進(jìn)制數(shù),所以,計(jì)算機(jī)外部都使用十進(jìn)制數(shù)。在一日常使用的都是十進(jìn)制數(shù),所以,計(jì)算機(jī)外部都使用十進(jìn)制數(shù)。在一些有大量數(shù)據(jù)輸入些有大量數(shù)據(jù)輸入/出的系統(tǒng)中,為減少二進(jìn)制數(shù)和十進(jìn)制數(shù)之間的轉(zhuǎn)出的系統(tǒng)中,為減少二進(jìn)制數(shù)和十進(jìn)制數(shù)之間的轉(zhuǎn)換,在計(jì)算機(jī)內(nèi)部直接用十進(jìn)制數(shù)表示數(shù)值。換,在計(jì)算機(jī)內(nèi)部直接用十進(jìn)制數(shù)表示數(shù)值。 十進(jìn)制數(shù)的表示十進(jìn)制數(shù)的表示2022-4-30用用ASCII碼表示十進(jìn)

49、制數(shù)碼表示十進(jìn)制數(shù)u前分隔數(shù)字串前分隔數(shù)字串 符號(hào)位單獨(dú)用一個(gè)字節(jié)表示,位于數(shù)字串之前。符號(hào)位單獨(dú)用一個(gè)字節(jié)表示,位于數(shù)字串之前。 正號(hào)用正號(hào)用“+”的的ASCII碼碼(2BH)表示;負(fù)號(hào)用表示;負(fù)號(hào)用“-”的的ASCII碼碼(2DH)表示表示 例:十進(jìn)制數(shù)例:十進(jìn)制數(shù)+236表示為表示為: 2B 32 33 36H 0010 1011 0011 0010 0011 0011 0011 0110B 十進(jìn)制數(shù)十進(jìn)制數(shù)-2369表示為表示為: 2D 32 33 36 39H 0010 1101 0011 0010 0011 0011 0011 0110 0011 1001Bu后嵌入數(shù)字串后嵌入數(shù)字

50、串 符號(hào)位嵌入最低位數(shù)字的符號(hào)位嵌入最低位數(shù)字的ASCII碼高碼高4位中。比前分隔方式位中。比前分隔方式省一個(gè)字節(jié)。省一個(gè)字節(jié)。 正數(shù)不變;負(fù)數(shù)高正數(shù)不變;負(fù)數(shù)高4位變?yōu)槲蛔優(yōu)?111. 例:十進(jìn)制數(shù)例:十進(jìn)制數(shù)+236表示為表示為: 32 33 36H 0011 0010 0011 0011 0011 0110B 十進(jìn)制數(shù)十進(jìn)制數(shù)-2369表示為表示為: 32 33 36 79H 0011 0010 0011 0011 0011 0110 0111 1001B缺點(diǎn):占空間大,且需轉(zhuǎn)換成二進(jìn)制數(shù)或缺點(diǎn):占空間大,且需轉(zhuǎn)換成二進(jìn)制數(shù)或BCD碼才能計(jì)算。碼才能計(jì)算。2022-4-30u編碼思想編碼

51、思想: 每個(gè)十進(jìn)數(shù)位至少有每個(gè)十進(jìn)數(shù)位至少有4位二進(jìn)制表示。而位二進(jìn)制表示。而4位二進(jìn)制位可組合成位二進(jìn)制位可組合成16種狀態(tài),去掉種狀態(tài),去掉10種狀態(tài)后還有種狀態(tài)后還有6種冗余狀態(tài)。種冗余狀態(tài)。u編碼方案編碼方案1 十進(jìn)制有權(quán)碼十進(jìn)制有權(quán)碼- 每個(gè)十進(jìn)制數(shù)位的每個(gè)十進(jìn)制數(shù)位的4個(gè)二進(jìn)制位(稱為基個(gè)二進(jìn)制位(稱為基2碼)都有一個(gè)確定的權(quán)。碼)都有一個(gè)確定的權(quán)。8421碼是最常用的十進(jìn)制有權(quán)碼。也稱自然碼是最常用的十進(jìn)制有權(quán)碼。也稱自然BCD(NBCD)碼。)碼。2 十進(jìn)制無權(quán)碼十進(jìn)制無權(quán)碼- 每個(gè)十進(jìn)制數(shù)位的每個(gè)十進(jìn)制數(shù)位的4個(gè)基個(gè)基2碼沒有確定的權(quán)。在無權(quán)碼方案中,用的碼沒有確定的權(quán)。在無

52、權(quán)碼方案中,用的較多的是余較多的是余3碼和格雷碼。碼和格雷碼。3其他編碼方案其他編碼方案 (5中取中取2碼、獨(dú)熱碼等)碼、獨(dú)熱碼等)u符號(hào)位的表示:符號(hào)位的表示: “+”:1100 ; “-”:1101 例:例:+236=(1100 0010 0011 0110)8421 (占占2個(gè)字節(jié)個(gè)字節(jié)) - 2369=(1101 0000 0010 0011 0110 1001)8421 (占占3個(gè)字節(jié)個(gè)字節(jié))用用BCD碼表示十進(jìn)制數(shù)碼表示十進(jìn)制數(shù)補(bǔ)補(bǔ)0 0以使數(shù)占滿一個(gè)字節(jié)以使數(shù)占滿一個(gè)字節(jié)2022-4-30第一講小結(jié)第一講小結(jié)u在機(jī)器內(nèi)部編碼后的數(shù)稱為機(jī)器數(shù),其值稱為真值在機(jī)器內(nèi)部編碼后的數(shù)稱為機(jī)

53、器數(shù),其值稱為真值u定義數(shù)值數(shù)據(jù)有三個(gè)要素:進(jìn)制、定點(diǎn)定義數(shù)值數(shù)據(jù)有三個(gè)要素:進(jìn)制、定點(diǎn)/浮點(diǎn)、編碼浮點(diǎn)、編碼u整數(shù)的表示整數(shù)的表示無符號(hào)數(shù):無符號(hào)數(shù):正整數(shù),用來表示地址等正整數(shù),用來表示地址等;帶符號(hào)整數(shù):;帶符號(hào)整數(shù):用補(bǔ)碼表示用補(bǔ)碼表示uC語言中的整數(shù)語言中的整數(shù)無符號(hào)數(shù):無符號(hào)數(shù):unsigned int ( short / long);帶符號(hào)數(shù):;帶符號(hào)數(shù): int ( short / long)u浮點(diǎn)數(shù)的表示浮點(diǎn)數(shù)的表示符號(hào)符號(hào);尾數(shù)尾數(shù):定點(diǎn)小數(shù);:定點(diǎn)小數(shù);指數(shù)(階):指數(shù)(階):定點(diǎn)整數(shù)(基不用表示)定點(diǎn)整數(shù)(基不用表示)u浮點(diǎn)數(shù)的范圍浮點(diǎn)數(shù)的范圍正上溢、正下溢、負(fù)上溢、負(fù)

54、下溢;與階碼的位數(shù)和基的大小有關(guān)正上溢、正下溢、負(fù)上溢、負(fù)下溢;與階碼的位數(shù)和基的大小有關(guān)u浮點(diǎn)數(shù)的精度:浮點(diǎn)數(shù)的精度:與尾數(shù)的位數(shù)和是否規(guī)格化有關(guān)與尾數(shù)的位數(shù)和是否規(guī)格化有關(guān)u浮點(diǎn)數(shù)的表示(浮點(diǎn)數(shù)的表示(IEEE 754標(biāo)準(zhǔn)):標(biāo)準(zhǔn)):?jiǎn)尉葐尉萐P(float)和雙精度)和雙精度DP(double)- 規(guī)格化數(shù)規(guī)格化數(shù)(SP):階碼:階碼1254,尾數(shù)最高位隱含為,尾數(shù)最高位隱含為1- “零零” (階為全階為全0,尾為全,尾為全0)- (階為全階為全1,尾為全,尾為全0)- NaN (階為全階為全1,尾為非,尾為非0)- 非規(guī)非規(guī)格化格化數(shù)數(shù) (階為全階為全0,尾為非,尾為非0,隱藏位為

55、,隱藏位為0)(P.42倒數(shù)第倒數(shù)第9行說明)行說明)u十進(jìn)制數(shù)的表示:十進(jìn)制數(shù)的表示:用用ASCII碼或碼或BCD碼表示碼表示2022-4-30“轉(zhuǎn)換轉(zhuǎn)換”的概念在數(shù)據(jù)表示中的反映的概念在數(shù)據(jù)表示中的反映感覺媒體信息感覺媒體信息樹、鏈表等結(jié)構(gòu)化數(shù)據(jù)描述樹、鏈表等結(jié)構(gòu)化數(shù)據(jù)描述程序定義的程序定義的int、float等數(shù)據(jù)等數(shù)據(jù)指令中的寄存器或內(nèi)存中數(shù)據(jù)指令中的寄存器或內(nèi)存中數(shù)據(jù)ALU或總線上的運(yùn)算或總線上的運(yùn)算/傳輸數(shù)據(jù)傳輸數(shù)據(jù)邏輯門邏輯門位信息位信息問題問題(應(yīng)用應(yīng)用) 算法算法程序程序(語言語言)指令集體系結(jié)構(gòu)指令集體系結(jié)構(gòu)(ISA)微結(jié)構(gòu)微結(jié)構(gòu)電路電路器件器件(晶體管晶體管)具具體體實(shí)實(shí)

56、現(xiàn)現(xiàn)抽抽象象概概括括2022-4-30第二講第二講 非數(shù)值數(shù)據(jù)、數(shù)據(jù)排列、糾非數(shù)值數(shù)據(jù)、數(shù)據(jù)排列、糾/檢錯(cuò)檢錯(cuò)主主 要要 內(nèi)內(nèi) 容容u非數(shù)值數(shù)據(jù)的表示非數(shù)值數(shù)據(jù)的表示邏輯數(shù)據(jù)、西文字符、漢字邏輯數(shù)據(jù)、西文字符、漢字u數(shù)據(jù)的寬度數(shù)據(jù)的寬度u數(shù)據(jù)的存儲(chǔ)排列數(shù)據(jù)的存儲(chǔ)排列大端方式、小端方式大端方式、小端方式u數(shù)據(jù)的糾錯(cuò)和檢錯(cuò)數(shù)據(jù)的糾錯(cuò)和檢錯(cuò)奇偶校驗(yàn)、海明校驗(yàn)、循環(huán)冗余校驗(yàn)奇偶校驗(yàn)、海明校驗(yàn)、循環(huán)冗余校驗(yàn)2022-4-30u表示表示用一位表示用一位表示 。例如,真:。例如,真:1 / 假:假:0N位二進(jìn)制數(shù)可表示位二進(jìn)制數(shù)可表示N個(gè)邏輯數(shù)據(jù),或一個(gè)位串個(gè)邏輯數(shù)據(jù),或一個(gè)位串u運(yùn)算運(yùn)算 按位進(jìn)行按位進(jìn)行

57、 如如:按位與按位與 / 按位或按位或 / 邏輯左移邏輯左移 / 邏輯右移邏輯右移 等等 u識(shí)別識(shí)別 邏輯數(shù)據(jù)和數(shù)值數(shù)據(jù)在形式上并無差別,也是一串邏輯數(shù)據(jù)和數(shù)值數(shù)據(jù)在形式上并無差別,也是一串0/1序序列,機(jī)器靠指令來識(shí)別。列,機(jī)器靠指令來識(shí)別。u位串位串 用來表示若干個(gè)狀態(tài)位或控制位(用來表示若干個(gè)狀態(tài)位或控制位(OS中使用較多)中使用較多) 例如,例如,x86的標(biāo)志寄存器含義如下:的標(biāo)志寄存器含義如下: 邏輯數(shù)據(jù)的編碼表示邏輯數(shù)據(jù)的編碼表示CFPFAFZFSFTFIFDFOF2022-4-30u特點(diǎn)特點(diǎn) 是一種拼音文字,用有限幾個(gè)字母可拼寫出所有單詞是一種拼音文字,用有限幾個(gè)字母可拼寫出所有

58、單詞 只對(duì)有限個(gè)字母和數(shù)學(xué)符號(hào)、標(biāo)點(diǎn)符號(hào)等輔助字符編碼只對(duì)有限個(gè)字母和數(shù)學(xué)符號(hào)、標(biāo)點(diǎn)符號(hào)等輔助字符編碼 所有字符總數(shù)不超過所有字符總數(shù)不超過256個(gè),使用個(gè),使用7或或8個(gè)二進(jìn)位可表示個(gè)二進(jìn)位可表示u表示(表示(常用編碼為常用編碼為7位位ASCII碼)碼) 十進(jìn)制數(shù)字:十進(jìn)制數(shù)字:0/1/2/9 英文字母:英文字母:A/B/Z/a/b/z 專用符號(hào):專用符號(hào):+/-/%/*/&/ 控制字符(不可打印或顯示)控制字符(不可打印或顯示)u操作操作 字符串操作,如字符串操作,如:傳送傳送/比較等比較等 西文字符的編碼表示西文字符的編碼表示必須熟悉對(duì)應(yīng)必須熟悉對(duì)應(yīng)的的ASCII碼!碼!2022

59、-4-30u特點(diǎn)特點(diǎn) 漢字是表意文字,一個(gè)字就是一個(gè)方塊圖形。漢字是表意文字,一個(gè)字就是一個(gè)方塊圖形。 漢字?jǐn)?shù)量巨大,總數(shù)超過漢字?jǐn)?shù)量巨大,總數(shù)超過6萬字,給漢字在計(jì)算機(jī)內(nèi)部的表示、漢萬字,給漢字在計(jì)算機(jī)內(nèi)部的表示、漢字的傳輸與交換、漢字的輸入和輸出等帶來了一系列問題。字的傳輸與交換、漢字的輸入和輸出等帶來了一系列問題。u編碼形式編碼形式 有以下幾種漢字代碼:有以下幾種漢字代碼: 輸入碼:輸入碼:對(duì)漢字用相應(yīng)按鍵進(jìn)行編碼表示,用于輸入對(duì)漢字用相應(yīng)按鍵進(jìn)行編碼表示,用于輸入 內(nèi)碼:內(nèi)碼:用于在系統(tǒng)中進(jìn)行存儲(chǔ)、查找、傳送等處理用于在系統(tǒng)中進(jìn)行存儲(chǔ)、查找、傳送等處理 字模點(diǎn)陣或輪廓描述字模點(diǎn)陣或輪廓

60、描述: 描述漢字字模點(diǎn)陣或輪廓,用于顯示描述漢字字模點(diǎn)陣或輪廓,用于顯示/打印打印 漢字及國際字符的編碼表示漢字及國際字符的編碼表示問題:西文字符有沒有輸入碼?有沒有內(nèi)碼?問題:西文字符有沒有輸入碼?有沒有內(nèi)碼?有沒有字模點(diǎn)陣或輪廓描述?有沒有字模點(diǎn)陣或輪廓描述?2022-4-30向計(jì)算機(jī)輸入漢字的方式:向計(jì)算機(jī)輸入漢字的方式: 手寫漢字聯(lián)機(jī)識(shí)別輸入,或者是印刷漢字掃描輸入后自動(dòng)識(shí)別,手寫漢字聯(lián)機(jī)識(shí)別輸入,或者是印刷漢字掃描輸入后自動(dòng)識(shí)別,這兩這兩種方法現(xiàn)均已達(dá)到實(shí)用水平。種方法現(xiàn)均已達(dá)到實(shí)用水平。 用語音輸入漢字用語音輸入漢字,雖然簡(jiǎn)單易操作,但離實(shí)用階段還相差很遠(yuǎn)。,雖然簡(jiǎn)單易操作,但離實(shí)用階段還

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論