




版權(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ò) 2021-6-23 第一講:數(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ī)
2、格化浮點(diǎn)數(shù)的規(guī)格化 uIEEE754浮點(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ù)表示 2021-6-23 “轉(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é)
3、構(gòu) 電路 器件(晶體管) 2021-6-23 各類數(shù)據(jù)之間 的轉(zhuǎn)換關(guān)系 對(duì)連續(xù)信息采樣, 以使信息離散化 對(duì)離散樣本用0和1 進(jìn)行編碼 定點(diǎn)運(yùn)算指令 浮點(diǎn)運(yùn)算指令 邏輯、位操作或字符處理指令 2021-6-23 信息的二進(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)制
4、(即:計(jì)算機(jī)內(nèi)部所有信息都用二進(jìn)制(即:0和和1)進(jìn)行編碼)進(jìn)行編碼 u用二進(jìn)制編碼的原因:用二進(jìn)制編碼的原因: 制造二個(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ù)
5、值數(shù)據(jù)的表示 C語言中哪些類型是數(shù) 值數(shù)據(jù)?哪些是非? 2021-6-23 數(shù)值數(shù)據(jù)的表示數(shù)值數(shù)據(jù)的表示 u數(shù)值數(shù)據(jù)表示的三要素?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)
6、整數(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ù)的編碼(解決正負(fù)號(hào)問題)(解決正負(fù)號(hào)問題) 原碼、補(bǔ)碼、反碼、移碼原碼、補(bǔ)碼、反碼、移碼 (反碼很少用)(反碼很少用) 答案是:不知道!答案是:不知道! 2021-6-23 Sign and Magnitude (原碼的表示)(原碼的表示) BinaryDecimal 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 u 容易理解容易理解, , 但是:但是: 0 0 的表示不唯一,故不利于程序員編程的表示
7、不唯一,故不利于程序員編程 加、減運(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 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 -7 1000 1001 1010 1011 1100 1101 1110 1111 2021-6-23 補(bǔ)碼特性補(bǔ)碼特性 - 模運(yùn)算(模運(yùn)算(modular運(yùn)算
8、)運(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 = 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ì)于某一
9、確定的模,某數(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)中,一個(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ì)值。 2021-6-23 補(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
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-1928等于多少?等于多少? 9828-1928=9828+(104-1928) =9828+8072 = 1 7900 =7900(mod 104) 取模即只留余數(shù),高位取模即只留余數(shù),高位“1”1”被丟棄!被丟棄! 相當(dāng)于只有低相當(dāng)于只有低4 4位留在算盤上。位留在算盤上。 2021-6-23 計(jì)算機(jī)中的運(yùn)算器是模運(yùn)算系統(tǒng)計(jì)算機(jī)中的運(yùn)算器是模運(yùn)算系統(tǒng) 8位二
11、進(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 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” 2021-6-23 運(yùn)算器是一個(gè)模運(yùn)算系統(tǒng),適合用補(bǔ)碼表示和運(yùn)算運(yùn)算器是一個(gè)模運(yùn)算系統(tǒng),適合用補(bǔ)碼表示
12、和運(yùn)算 0000 0001 1000 0010 0100 1110 1111 0111 0101 1010 1011 1100 11010011 0110 1001 計(jì)算機(jī)中運(yùn)算器只有有限位。假定為計(jì)算機(jī)中運(yùn)算器只有有限位。假定為n位,則運(yùn)算結(jié)果只能保留低位,則運(yùn)算結(jié)果只能保留低n位,位, 故可看成是個(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ǔ)碼
13、有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í)點(diǎn)。 2021-6-23 求特殊數(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
14、.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ù)! 2021-6-23 補(bǔ)碼與真值之間的簡(jiǎn)便轉(zhuǎn)換補(bǔ)碼與真值之間的簡(jiǎn)便轉(zhuǎn)換 例例: 設(shè)機(jī)器數(shù)有設(shè)機(jī)器數(shù)有8位,求位,求123和和-123的補(bǔ)碼表示。的補(bǔ)碼表示。 解解: 123 = 127- 4 = 01111111B - 100B = 01111011B -123= - 01111011B 01111011補(bǔ) 補(bǔ)= 2
15、8 + 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。 如何快速得到如何快速得到123的二進(jìn)制表示?的二進(jìn)制表示? 各位取反,末位加各位取反,末位加1 2021-6-23 Twos Complement (補(bǔ)碼的表示)(補(bǔ)碼的表示) u正數(shù):符號(hào)位(正數(shù):符號(hào)位(sign bit)為)為0,數(shù)值部分不變
16、,數(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)位和最 高數(shù)值位。高數(shù)值位。 Bitwise Inverse 1111 1110 1101 1100 1011 1010 1001 1000 0111 Decimal 0 1 2 3 4 5 6 7 8 補(bǔ)碼補(bǔ)碼 0000
17、 0001 0010 0011 0100 0101 0110 0111 1000 Decimal -0 -1 -2 -3 -4 -5 -6 -7 -8 補(bǔ)碼補(bǔ)碼 0000 1111 1110 1101 1100 1011 1010 1001 1000 變形補(bǔ)碼變形補(bǔ)碼 00000 00001 00010 00011 00100 00101 00110 00111 01000 變形補(bǔ)碼變形補(bǔ)碼 00000 11111 11110 11101 11100 11011 11010 11001 11000 2021-6-23 如何求補(bǔ)碼的真值如何求補(bǔ)碼的真值 根據(jù)補(bǔ)碼各位上的根據(jù)補(bǔ)碼各位上的“權(quán)權(quán)”,
18、可以求出一個(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)=-42 2021-6-23 Excess (biased) notion- 移碼表示移碼表示 什么是什么是“excess (biased) n
19、otation-移碼表示移碼表示”? 將每一個(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ì)階操作(比較大?。┍阌诟↑c(diǎn)數(shù)加減運(yùn)算時(shí)的對(duì)階操作(比較大?。?例:例:1.01 x2-1+1.11 x
20、23 簡(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ǔ)碼僅第一位不同 2021-6-23 Unsigned integer(無符號(hào)整數(shù)無符號(hào)整數(shù)) u機(jī)器中字的位排列順序有兩種方式:(例:機(jī)器中字的位排列順序有兩種方式:(例:32位字位字: 0010112) 高到低位從左到右:高到低位從左到右:0000 0000 0000 0000 0000 0000 000
21、0 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)表示,等等示。例如,地址運(yùn)算,編號(hào)表示,等等 u無
22、符號(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 LSB 2021-6-23 Signed integer(帶符號(hào)整數(shù),定點(diǎn)整數(shù))(帶符號(hào)整數(shù),定點(diǎn)整數(shù)) u計(jì)算機(jī)必須能處理正數(shù)計(jì)算機(jī)必須能處理正數(shù)(positive) 和負(fù)數(shù)和負(fù)數(shù)(neg
23、ative),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的表示唯一,方便使用的表示唯一,方
24、便使用 比原碼和反碼多表示一個(gè)最小負(fù)數(shù)比原碼和反碼多表示一個(gè)最小負(fù)數(shù) 與移碼相比,其符號(hào)位和真值的符號(hào)對(duì)應(yīng)關(guān)系清楚與移碼相比,其符號(hào)位和真值的符號(hào)對(duì)應(yīng)關(guān)系清楚 2021-6-23 帶符號(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ǔ)符 (稱為符
25、號(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=0
26、000 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)生“溢出異常溢出異?!?SKIP 2021-6-23 擴(kuò)展操作舉例擴(kuò)展操作舉例 例例1(擴(kuò)展操作):在(擴(kuò)展操作):在32位機(jī)器上輸出位機(jī)器上輸出si, usi, i, ui的的 十進(jìn)制(真值)和十六進(jìn)制值(機(jī)器數(shù))是
27、什么?十進(jìn)制(真值)和十六進(jìn)制值(機(jī)器數(shù))是什么? short si = -32768; unsigned short usi = si; int i = si; unsingned ui = usi ; si = -32768 80 00 usi = 32768 80 00 i = -32768 FF FF 80 00 ui = 32768 00 00 80 00 BACK 機(jī)器數(shù)機(jī)器數(shù) 真值真值 提示: 32768=215 =1000 0000 0000 0000B 現(xiàn)象: 帶符號(hào)整數(shù):符號(hào)擴(kuò)展 無符號(hào)數(shù):0擴(kuò)展 2021-6-23 C語言程序中的整數(shù)語言程序中的整數(shù) 關(guān)系表達(dá)式關(guān)系表達(dá)式
28、運(yùn)算類型運(yùn)算類型結(jié)果結(jié)果說明說明 0 = 0U -1 0 -1 -2147483647-1 2147483647U -2147483647-1 2147483647 (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)
29、整數(shù)強(qiáng)制轉(zhuǎn)換為無符號(hào)數(shù) 假定以下關(guān)系表達(dá)式在假定以下關(guān)系表達(dá)式在3232位用補(bǔ)碼表示的機(jī)器上執(zhí)行,結(jié)果是什么?位用補(bǔ)碼表示的機(jī)器上執(zhí)行,結(jié)果是什么? 2021-6-23 C語言程序中的整數(shù)語言程序中的整數(shù) 關(guān)系表達(dá)式關(guān)系表達(dá)式類類 型型 結(jié)結(jié) 果果 說明說明 0 = = 0U -1 0 -1 -2147483647 - 1 2147483647U -2147483647 - 1 2147483647 (int) 2147483648U -1 -2 (unsigned) -1 -2 無無 帶帶 無無 帶帶 無無 帶帶 帶帶 無無 1 1 0* 1 0* 1* 1 1 000B = 000B 11
30、1B (-1) 000B(0) 0111B (231-1) 1000B (-231) 0111B (231-1) 1000B (-231) 111B (-1) 1110B (-2) 111B (232-1) 1110B (232-2) 帶帶* *的結(jié)果與常規(guī)預(yù)想的相反!的結(jié)果與常規(guī)預(yù)想的相反! 2021-6-23 Example: 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ù)
31、 同一個(gè)數(shù)有多種表示形式。例:對(duì)于數(shù)同一個(gè)數(shù)有多種表示形式。例:對(duì)于數(shù) 1/1,000,000,000 Normalized (唯一的規(guī)格化形式唯一的規(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 基為基為2 for Binary Numbers: 只要對(duì)尾數(shù)和指數(shù)分別編碼,就可表示一個(gè)浮點(diǎn)數(shù)(即
32、:實(shí)數(shù))只要對(duì)尾數(shù)和指數(shù)分別編碼,就可表示一個(gè)浮點(diǎn)數(shù)(即:實(shí)數(shù)) 2021-6-23 浮點(diǎn)數(shù)浮點(diǎn)數(shù)(Floating Point)的表示范圍的表示范圍 例:畫出下述例:畫出下述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 9 3131位為位為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)的,
33、故規(guī)定第一位默認(rèn)的“1 1”不明顯表示出來。這樣可用不明顯表示出來。這樣可用2323個(gè)數(shù)位表個(gè)數(shù)位表 示示2424位尾數(shù)。位尾數(shù)。 S階碼階碼E尾數(shù)尾數(shù)M 最大正數(shù):最大正數(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ù)之間更稀
34、疏,且不均勻 正下溢 負(fù)下溢 - (1-2-24) 2127 數(shù)軸 零 可表示的正數(shù) 可表示的負(fù)數(shù) -2-129 129 0 2-129 129 (1-2-24) 2127 正上溢 負(fù)上溢 +/-0.1xxxxx 2E 2021-6-23 浮點(diǎn)數(shù)的表示浮點(diǎn)數(shù)的表示 Normal format(規(guī)格化數(shù)形式)(規(guī)格化數(shù)形式) : +/-1.xxxxxxxxxx 2Exponent 32-bit 規(guī)格化數(shù):規(guī)格化數(shù): 31 0 S Exponent Significand 1 bit ? bits ? bits S 是符號(hào)位(是符號(hào)位(Sign) Exponent用移碼(增碼)來表示用移碼(增碼)
35、來表示 Significand 表示表示 xxxxxxxxxxxxx,尾數(shù)部分,尾數(shù)部分 (基可以是基可以是 2/ 4 / 8 / 16,約定信息,無需顯式表示,約定信息,無需顯式表示 ) 早期的計(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ī)定不 太一樣太一樣, ,顯然這里更合理顯然這里更合理! ! 2021-6-23 “Father” of the IEEE 754 st
36、andard 現(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ì)著手制定浮點(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.html This standard was primarily the work of one person, UC Berkeley
37、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í),帶來麻煩因而相互不兼容,機(jī)器之間傳送數(shù)據(jù)時(shí),帶來麻煩 2021-6-23 IEEE 754 Floating Point Standard Single Precision : ( Double Precision is similar ) S Exponent Significand 1 bit 8 bits 23 bits Sign bit: 1 表示表示negative ; 0表示表示
38、 positive Significand(尾數(shù))(尾數(shù)): 規(guī)格化尾數(shù)最高位總是規(guī)格化尾數(shù)最高位總是1,所以隱含表示,省,所以隱含表示,省1位位 1 + 23 bits ( single),),1 + 52 bits (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 + Sign
39、ificand) x 2(Exponent-1023) 全全0 0和全和全1 1用來表示特殊值!用來表示特殊值! 為什么用為什么用127127?若用?若用128,128, 則階碼范圍為多少?則階碼范圍為多少? 0000 0001 (-127) 1111 1110 (126) 規(guī)格化數(shù):+/-1.xxxxxxxxxxtwo x 2Exponent 2021-6-23 Ex: Converting Binary FP to Decimal 10111 1101 110 0000 0000 0000 0000 0000 Sign: 1 = negative Exponent: 0111 1101tw
40、o = 125ten Bias adjustment: 125 - 127 = -2 Significand: 1 + 1x2-1+ 1x2-2 + 0 x2-3 + 0 x2-4 + 0 x2-5 +. =1+2-1 +2-2 = 1+0.5 +0.25 = 1.75 Represents: -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 number 2021-6-23 Ex: Converting Deci
41、mal to FP -12.75 1. Denormalize: -12.75 2. Convert integer part: 12 = 8 + 4 = 11002 3. Convert fractional part: .75 = .5 + .25 = .112 4. Put parts together and normalize: 1100.11 = 1.10011 x 23 5. Convert exponent: 127 + 3 = 128 + 2 = 1000 00102 11000 0010 100 1100 0000 0000 0000 0000 The Hex rep. i
42、s C14C0000H 2021-6-23 Normalized numbers(規(guī)格化數(shù))(規(guī)格化數(shù)) Exponent Significand Object 1-254 anything Norms implicit leading 1 0 0 ? 0 nonzero ? 255 0 ? 255 nonzero ? 前面的定義都是針對(duì)規(guī)格化數(shù)(前面的定義都是針對(duì)規(guī)格化數(shù)(normalized form) How about other patterns? 2021-6-23 Representation for 0 How to represent 0? exponent: all zer
43、os significand: all zeros What about sign? Both cases valid. +0: 0 00000000 00000000000000000000000 -0: 1 00000000 00000000000000000000000 2021-6-23 Representation for +/- How to represent +/-? Exponent : all ones (11111111B = 255) Significand: all zeros + : 0 11111111 00000000000000000000000 - : 1
44、11111111 00000000000000000000000 Operations 5.0 / 0 = +, -5.0 / 0 = - 5+(+) = +, (+)+(+) = + 5 - (+) = -, (-) - (+) = - etc 為什么要這樣處理為什么要這樣處理? 可以利用可以利用+/-作比較。作比較。 例如:例如:X/0Y可作為有效比較可作為有效比較 In FP, 除數(shù)為除數(shù)為0的結(jié)果是的結(jié)果是 +/- , 不是溢出異常不是溢出異常.(整數(shù)除(整數(shù)除0為異常)為異常) :infinity 2021-6-23 Representation for “Not a Number”
45、 Sqrt (- 4.0) = ? 0/0 = ? Called Not a Number (NaN) - “非數(shù)非數(shù)” Operations sqrt (-4.0) = NaN 0/0 = NaN op (NaN,x) = NaN +(-) = NaN +- (+) = NaN / = NaN etc. How to represent NaN Exponent = 255 Significand: nonzero NaNs can help with debugging 2021-6-23 What have we defined so far? (for SP) Representati
46、on for Denorms(非規(guī)格化數(shù)非規(guī)格化數(shù)) Used to represent Denormalized numbers Exponent Significand Object 0 0 +/-0 0 nonzero Denorms 1-254 anything Norms implicit leading 1 255 0 +/- infinity 255 nonzero NaN 2021-6-23 Representation for Denorms 2-126 2-1252-1242-123 1.00 x2-126 1.11x2-126 0.00 x2-126 0.11x2-126
47、 2-1262-125 2-124 2-123 0 0 GAP Normalized numbers Denorms(-1)s0.aaa 2-126 2021-6-23 Questions about IEEE 754 uWhats the range of representable values? The largest number for single: +1.111X 2127 How about double? uWhat about following type converting: not always true! if ( i = (int) (float) i) ) pr
48、intf (“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+(y+z) = 1.5x1038+ (1.5x1038+1.0) = 0.0 How about double? How about double? True! Not always true! 約約 +3.4 X 1038 約約 +1
49、.8 X 10308 2021-6-23 u數(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 int o 浮點(diǎn)數(shù):浮點(diǎn)數(shù):Floating-point number (real number) Decimal (十進(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ù)值?
50、日常使用的都是十進(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ù)的表示 2021-6-23 用用ASCII碼表示十進(jìn)制數(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)用表示;
51、負(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 1001B u后嵌入數(shù)字串后嵌入數(shù)字串 符號(hào)位嵌入最低位數(shù)字的符號(hào)位嵌入最低位數(shù)字的ASCII碼高碼高4位中。比前分隔方式位中。比前分隔方式省一個(gè)字節(jié)。省一個(gè)字節(jié)。 正數(shù)不變;負(fù)數(shù)高正數(shù)不變;負(fù)數(shù)高4位變?yōu)槲蛔優(yōu)?111. 例:十
52、進(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ì)算。 2021-6-23 u編碼思想編碼思想: 每個(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)。
53、種冗余狀態(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)。在無權(quán)碼方案中,用的 較多的是余較多的是余3碼和格雷碼。碼和格雷碼。 3其他編碼方案其他編碼方案 (5中取中取2碼、獨(dú)熱碼等)碼、獨(dú)熱碼等) u符號(hào)位的表示:符號(hào)位的表示: “+
54、”: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é) 2021-6-23 第一講小結(jié)第一講小結(jié) u在機(jī)器內(nèi)部編碼后的數(shù)稱為機(jī)器數(shù),其值稱為真值在機(jī)器內(nèi)部編碼后的數(shù)稱為機(jī)器數(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ù):
55、正整數(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ù)下溢;與階碼的位數(shù)和基的大小有關(guān)正上溢、正下溢、負(fù)上溢、負(fù)下溢;與階碼的位數(shù)和基的大小有關(guān) u浮點(diǎn)數(shù)的精度:浮點(diǎn)數(shù)的精度:與尾數(shù)的位數(shù)和是否
56、規(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,隱藏位為,隱藏位為0)(P.42倒數(shù)第倒數(shù)第9行說明)行說明) u十進(jìn)制數(shù)的表示:十進(jìn)制數(shù)的表示:用用ASCII碼或碼或BCD碼表示碼
57、表示 1010在計(jì)算機(jī)中在計(jì)算機(jī)中 有幾種可能的有幾種可能的 表示?表示? -10呢?呢? 2021-6-23 “轉(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í)
58、現(xiàn)現(xiàn) 抽抽 象象 概概 括括 2021-6-23 第二講第二講 非數(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) 2021-6-23 u表示表示 用一位表示用一位表示 。例如,真:。例如,真:1 / 假:假:0 N位二進(jìn)制數(shù)可表示位二進(jìn)制數(shù)可表示N個(gè)邏輯數(shù)據(jù),或一個(gè)位串個(gè)邏輯數(shù)據(jù),或
59、一個(gè)位串 u運(yùn)算運(yùn)算 按位進(jìn)行按位進(jìn)行 如如:按位與按位與 / 按位或按位或 / 邏輯左移邏輯左移 / 邏輯右移邏輯右移 等等 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ù)的編碼表示 CFPF AFZFSFTFIFDFOF 2021-6-23 u特點(diǎn)特點(diǎn) 是一種拼音文字,用有限幾個(gè)字母可拼寫出
60、所有單詞是一種拼音文字,用有限幾個(gè)字母可拼寫出所有單詞 只對(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):+/-/%/*/ 則:則: x:3個(gè)周期個(gè)周期 j:2個(gè)周期個(gè)周期 x:2個(gè)周期個(gè)周期 j:1個(gè)周期個(gè)周期 雖節(jié)省了空間,雖節(jié)省了空間, 但增加了訪存次但增加了訪存次 數(shù)!數(shù)! 需要權(quán)衡
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園幼小銜接教學(xué)計(jì)劃
- 多元化班級(jí)評(píng)價(jià)體系建設(shè)計(jì)劃
- 輪訓(xùn)模式下的藝術(shù)教師發(fā)展計(jì)劃
- 共享服務(wù)模式下的會(huì)計(jì)管理計(jì)劃
- 高效會(huì)議管理的總結(jié)與方法計(jì)劃
- 打造水務(wù)行業(yè)的智能未來計(jì)劃
- 彩鈴呼叫流程
- 《長方體正方體的認(rèn)識(shí)》(教學(xué)設(shè)計(jì))-2023-2024學(xué)年五年級(jí)上冊(cè)數(shù)學(xué)西師大版
- 殘疾人托養(yǎng)服務(wù)投標(biāo)方案(技術(shù)方案)
- 《猴子的煩惱》教學(xué)設(shè)計(jì)-2024-2025學(xué)年三年級(jí)下冊(cè)數(shù)學(xué)北師大版
- 安全周例會(huì)匯報(bào)模板、安全匯報(bào)模板
- 內(nèi)科學(xué)系統(tǒng)性紅斑狼瘡題庫
- 萬達(dá)廣場(chǎng)室內(nèi)步行街裝設(shè)計(jì)任務(wù)書
- 人音版五年級(jí)下冊(cè)音樂《巴塘連北京》課件
- GB/T 775.1-2006絕緣子試驗(yàn)方法第1部分:一般試驗(yàn)方法
- GB/T 39965-2021節(jié)能量前評(píng)估計(jì)算方法
- 最新《工會(huì)基礎(chǔ)知識(shí)》試題庫及答案1000題【完美打印版】
- 化學(xué)核心素養(yǎng)的課堂教學(xué)-基于核心素養(yǎng)的高中化學(xué)教學(xué) 課件
- 體育競(jìng)賽的組織與編排
- 動(dòng)靜脈內(nèi)瘺的圍手術(shù)期護(hù)理-課件
評(píng)論
0/150
提交評(píng)論