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

下載本文檔

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

文檔簡介

1、Ch2: Data Representation數(shù)據(jù)的機(jī)器級表示數(shù)據(jù)的機(jī)器級表示第一講第一講 數(shù)值數(shù)據(jù)的表示數(shù)值數(shù)據(jù)的表示第二講第二講 非數(shù)值數(shù)據(jù)表示及非數(shù)值數(shù)據(jù)表示及 數(shù)據(jù)的寬度、存儲排列、糾數(shù)據(jù)的寬度、存儲排列、糾/ /檢錯檢錯2022-5-10第一講:數(shù)值數(shù)據(jù)的表示第一講:數(shù)值數(shù)據(jù)的表示主主 要要 內(nèi)內(nèi) 容容u定點(diǎn)數(shù)的表示定點(diǎn)數(shù)的表示 進(jìn)位計數(shù)制進(jìn)位計數(shù)制 定點(diǎn)數(shù)的二進(jìn)制編碼定點(diǎn)數(shù)的二進(jìn)制編碼- 原碼、補(bǔ)碼、移碼表示原碼、補(bǔ)碼、移碼表示 定點(diǎn)整數(shù)的表示定點(diǎn)整數(shù)的表示- 無符號整數(shù)、帶符號整數(shù)無符號整數(shù)、帶符號整數(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-5-10信息的二進(jìn)制編碼信息的二進(jìn)制編碼u計算機(jī)的外部信息與內(nèi)部機(jī)器級數(shù)據(jù)計算機(jī)的外部信息與內(nèi)部機(jī)器級數(shù)據(jù) u機(jī)器級數(shù)據(jù)分兩大類:機(jī)器級數(shù)據(jù)分兩大類: 數(shù)值數(shù)據(jù):無符號整數(shù)、帶符號整數(shù)、浮點(diǎn)數(shù)(實(shí)數(shù))、十進(jìn)制數(shù)數(shù)值數(shù)據(jù):無符號整數(shù)、帶符號整數(shù)、浮點(diǎn)數(shù)(實(shí)數(shù))、十進(jìn)制數(shù) 非數(shù)值數(shù)據(jù):邏輯數(shù)(包括位串)、西文字符和漢字非數(shù)值數(shù)據(jù):邏輯數(shù)(包括位串)、西文字符和漢字u計算機(jī)內(nèi)部所

3、有信息都用二進(jìn)制(即:計算機(jī)內(nèi)部所有信息都用二進(jìn)制(即:0和和1)進(jìn)行編碼)進(jìn)行編碼u用二進(jìn)制編碼的原因:用二進(jìn)制編碼的原因: 制造二個穩(wěn)定態(tài)的物理器件容易制造二個穩(wěn)定態(tài)的物理器件容易 二進(jìn)制編碼、計數(shù)、運(yùn)算規(guī)則簡單二進(jìn)制編碼、計數(shù)、運(yùn)算規(guī)則簡單 正好與邏輯命題對應(yīng),便于邏輯運(yùn)算,并可方便地用邏輯電路實(shí)現(xiàn)正好與邏輯命題對應(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ī)內(nèi)部的編碼的計算機(jī)內(nèi)部的0/1序列序列 真值:機(jī)器數(shù)真正的值,即:現(xiàn)實(shí)中帶正負(fù)號的數(shù)真值:機(jī)器數(shù)真正的值,即:現(xiàn)實(shí)中帶正負(fù)號的數(shù)首先考慮首先考慮數(shù)值數(shù)據(jù)

4、的表示數(shù)值數(shù)據(jù)的表示C語言中哪些類型是數(shù)值數(shù)據(jù)?哪些是非? 無符號整數(shù) 有符號整數(shù) 高級語言程序員角度 圖、樹、鏈表等結(jié)構(gòu)化數(shù)據(jù)描述 文字、圖、表、聲音、視頻等各種媒體信息 輸出設(shè)備 用戶角度 輸入設(shè)備 低級語言程序員和系統(tǒng)設(shè)計者角度 二進(jìn)制編碼表示的各種數(shù)據(jù) 指令系統(tǒng)能識別的基本類型數(shù)據(jù) 數(shù)值型數(shù)據(jù) 非數(shù)值型數(shù)據(jù) 整數(shù)(定點(diǎn)數(shù)) 實(shí)數(shù)(浮點(diǎn)數(shù)) 二進(jìn)制數(shù) 二進(jìn)制編碼的十進(jìn)制數(shù) 邏輯數(shù)據(jù) 西文字符和漢字 BACKP.26 圖圖2.12022-5-10數(shù)值數(shù)據(jù)的表示數(shù)值數(shù)據(jù)的表示u數(shù)值數(shù)據(jù)表示的三要素數(shù)值數(shù)據(jù)表示的三要素 進(jìn)位計數(shù)制進(jìn)位計數(shù)制 定、浮點(diǎn)表示定、浮點(diǎn)表示 如何用二進(jìn)制編碼如何用二進(jìn)

5、制編碼即:要確定一個數(shù)值數(shù)據(jù)的值必須先確定這三個要素。即:要確定一個數(shù)值數(shù)據(jù)的值必須先確定這三個要素。例如,機(jī)器數(shù)例如,機(jī)器數(shù) 01011001的值是多少?的值是多少?u進(jìn)位計數(shù)制進(jìn)位計數(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ù)(可用一個定點(diǎn)小數(shù)和一個定點(diǎn)整數(shù)來表示)浮點(diǎn)數(shù)(可用一個定點(diǎn)小數(shù)和一個定點(diǎn)整數(shù)來表示)u定點(diǎn)數(shù)的編碼定點(diǎn)數(shù)的編碼(解決正負(fù)號問題)(解決正負(fù)號問題) 原碼、補(bǔ)碼、反碼、移碼原碼、補(bǔ)碼、反碼、移碼 (反碼很少用)

6、(反碼很少用)答案是:不知道!答案是:不知道!2022-5-10 Sign and Magnitude (原碼的表示)(原碼的表示)BinaryDecimal0123456700000001001000110100010101100111u 容易理解容易理解, , 但是:但是: 0 0 的表示不唯一,故不利于程序員編程的表示不唯一,故不利于程序員編程 加、減運(yùn)算方式不統(tǒng)一加、減運(yùn)算方式不統(tǒng)一 需額外對符號位進(jìn)行處理,故不利于硬件設(shè)計需額外對符號位進(jìn)行處理,故不利于硬件設(shè)計 特別當(dāng)特別當(dāng) ab ab時,實(shí)現(xiàn)時,實(shí)現(xiàn) a-b a-b比較困難比較困難從從 5050年代開始,整數(shù)都采用補(bǔ)碼來表示年代開

7、始,整數(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-5-10補(bǔ)碼特性補(bǔ)碼特性 - 模運(yùn)算(模運(yùn)算(modular運(yùn)算)運(yùn)算)時鐘是一種模時鐘是一種模12系統(tǒng)系統(tǒng) 假定鐘表時針指向假定鐘表時針指向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) -

8、 4 8 (mod 12) 則,稱則,稱8是是- 4對模對模12的補(bǔ)碼的補(bǔ)碼 (即:(即:- 4的模的模12補(bǔ)碼等于補(bǔ)碼等于8)。)。 同樣有同樣有 -3 9 (mod 12) -5 7 (mod 12)等等結(jié)論結(jié)論2 2: 對于某一確定的模,某數(shù)減去小于模的另一數(shù),總可對于某一確定的模,某數(shù)減去小于模的另一數(shù),總可以用該數(shù)加上另一數(shù)負(fù)數(shù)的補(bǔ)碼來代替。以用該數(shù)加上另一數(shù)負(fù)數(shù)的補(bǔ)碼來代替。補(bǔ)碼(補(bǔ)碼(modular運(yùn)算):運(yùn)算):+ 和和 的統(tǒng)一的統(tǒng)一 重要概念:重要概念:在一個模運(yùn)算系統(tǒng)中,一個數(shù)與它除以在一個模運(yùn)算系統(tǒng)中,一個數(shù)與它除以“模?!焙蟮挠鄶?shù)等價。后的余數(shù)等價。結(jié)論結(jié)論1 1: 一

9、個負(fù)數(shù)的補(bǔ)碼等于模減該負(fù)數(shù)的絕對值。一個負(fù)數(shù)的補(bǔ)碼等于模減該負(fù)數(shù)的絕對值。2022-5-10模運(yùn)算系統(tǒng)舉例模運(yùn)算系統(tǒng)舉例例例1:“鐘表鐘表”模運(yùn)算系統(tǒng)模運(yùn)算系統(tǒng) 假定時針只能順撥,從假定時針只能順撥,從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) 假定算盤只有四檔,且只能做加法,則在算盤上計算假定算盤只有四檔,且只能做加法,則在算盤上計算 9828-1928等于多少?等于多少?9828-1928=9828+(104-1928) =9828+8072 = 1 7900

10、 =7900(mod 104)取模即只留余數(shù),高位取模即只留余數(shù),高位“1”1”被丟棄!被丟棄!相當(dāng)于只有低相當(dāng)于只有低4 4位留在算盤上。位留在算盤上。2022-5-10運(yùn)算器是一個模運(yùn)算系統(tǒng),適合用補(bǔ)碼表示和運(yùn)算運(yùn)算器是一個模運(yùn)算系統(tǒng),適合用補(bǔ)碼表示和運(yùn)算0000000110000010010011101111011101011010101111001101001101101001計算機(jī)中運(yùn)算器只有有限位。假定為計算機(jī)中運(yùn)算器只有有限位。假定為n位,則運(yùn)算結(jié)果只能保留低位,則運(yùn)算結(jié)果只能保留低n位,位,故可看成是個只有故可看成是個只有n檔的二進(jìn)制算盤。所以,其模為檔的二進(jìn)制算盤。所以,其模

11、為2n 。當(dāng)當(dāng)n=4時,共有時,共有16個機(jī)器數(shù):個機(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)2022-5-10求特殊數(shù)的補(bǔ)碼求特殊數(shù)的補(bǔ)碼 -1補(bǔ)補(bǔ)= 2n - 001 = 111(n個個1) (mod 2n)假定機(jī)器數(shù)有假定機(jī)器數(shù)有n位位 -2n-1補(bǔ)補(bǔ)= 2n - 2n-1 = 100(n-1個個0) (mod

12、2n) -1.0補(bǔ)補(bǔ)= 2 - 1.0 = 1.000(n-1個個0) (mod 2) +0補(bǔ)補(bǔ)= -0補(bǔ)補(bǔ)= 000(n個個0) 2022-5-10補(bǔ)碼與真值之間的簡便轉(zhuǎn)換補(bǔ)碼與真值之間的簡便轉(zhuǎn)換例例: 設(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ǔ)= 2

13、8 01111011 = 10000 0000 - 01111011 = 1111 1111 0111 1011 +1 = 1000 0100 +1 = 1000 0101,即,即 85H。如何快速得到如何快速得到123的二進(jìn)制表示?的二進(jìn)制表示?各位取反,末位加各位取反,末位加12022-5-10 Twos Complement (補(bǔ)碼的表示)(補(bǔ)碼的表示)u正數(shù):符號位(正數(shù):符號位(sign bit)為)為0,數(shù)值部分不變,數(shù)值部分不變u負(fù)數(shù):符號位為負(fù)數(shù):符號位為1,數(shù)值部分,數(shù)值部分“各位取反,末位加各位取反,末位加1”+0和和-0表示唯一表示唯一變形(模變形(模4 4)補(bǔ)碼:雙符號

14、,用于存放可溢出的中間結(jié)果。)補(bǔ)碼:雙符號,用于存放可溢出的中間結(jié)果。值太大,用值太大,用4 4位補(bǔ)碼無法表示,故位補(bǔ)碼無法表示,故“溢溢出出”!但用變形補(bǔ)碼可保留符號位和最!但用變形補(bǔ)碼可保留符號位和最高數(shù)值位。高數(shù)值位。BitwiseInverse111111101101110010111010100110000111Decimal012345678補(bǔ)碼補(bǔ)碼000000010010001101000101011001111000Decimal-0-1-2-3-4-5-6-7-8 補(bǔ)碼補(bǔ)碼000011111110110111001011101010011000變形補(bǔ)碼變形補(bǔ)碼00000000

15、0100010000110010000101001100011101000變形補(bǔ)碼變形補(bǔ)碼0000011111111101110111100110111101011001110002022-5-10如何求補(bǔ)碼的真值如何求補(bǔ)碼的真值根據(jù)補(bǔ)碼各位上的根據(jù)補(bǔ)碼各位上的“權(quán)權(quán)”,可以求出一個補(bǔ)碼的值,可以求出一個補(bǔ)碼的值真值范圍:真值范圍: 令:令:A補(bǔ)補(bǔ)= an-1an-2 a1a0 則:則: A= -an-1.2n-1+an-2 .2n-2+ a1 .21+ a0 .20 符號為符號為0 0,則為正數(shù),數(shù)值部分同,則為正數(shù),數(shù)值部分同符號為符號為1 1,則為負(fù)數(shù),數(shù)值各位取反,末位加,則為負(fù)數(shù),數(shù)

16、值各位取反,末位加1 1例如:補(bǔ)碼例如:補(bǔ)碼“11010110”的真值為:的真值為:-0101010=-(32+8+2)=-422022-5-10Excess (biased) notion- 移碼表示移碼表示什么是什么是“excess (biased) notation-移碼表示移碼表示”? 將每一個數(shù)值加上一個偏置常數(shù)(將每一個數(shù)值加上一個偏置常數(shù)( Excess / bias)一般來說,當(dāng)編碼位數(shù)為一般來說,當(dāng)編碼位數(shù)為n時,時,bias取取 2n-1 Ex. n=4: Ebiased = E+ 23 ( bias= 23 =10002 ) -8 (+8) 00002 -7 (+8) 0

17、0012 0 (+8) 10002 +7 (+8) 11112為什么要用移碼來表示指數(shù)(階碼)為什么要用移碼來表示指數(shù)(階碼)? 便于浮點(diǎn)數(shù)加減運(yùn)算時的對階操作便于浮點(diǎn)數(shù)加減運(yùn)算時的對階操作例:例:1.01 x2-1+1.11 x23 簡化比較簡化比較補(bǔ)碼:補(bǔ)碼:1111 0011 ? (-1) (3)1.01 x2-1+4+1.11 x23+4 移碼:移碼:0011 0111 (3) (7)移碼主要用來表示移碼主要用來表示浮點(diǎn)數(shù)階碼!浮點(diǎn)數(shù)階碼!0 0的移碼表示唯一的移碼表示唯一移碼和補(bǔ)碼僅第一位不同移碼和補(bǔ)碼僅第一位不同2022-5-10 Unsigned integer(無符號整數(shù)無符號

18、整數(shù))u機(jī)器中字的位排列順序有兩種方式:(例:機(jī)器中字的位排列順序有兩種方式:(例:32位字位字: 0010112) 高到低位從左到右:高到低位從左到右:0000 0000 0000 0000 0000 0000 0000 1011 高到低位從右到左:高到低位從右到左:1101 0000 0000 0000 0000 0000 0000 0000 MIPS采用高到低從左往右排列采用高到低從左往右排列 Leftmost和和rightmost這兩個詞有歧義,故用這兩個詞有歧義,故用LSB(Least Significant Bit)來表示最低有效位,用來表示最低有效位,用MSB來表示最高有效位來表

19、示最高有效位u一般在全部是正數(shù)運(yùn)算且不出現(xiàn)負(fù)值結(jié)果的場合下,可使用無符號數(shù)表一般在全部是正數(shù)運(yùn)算且不出現(xiàn)負(fù)值結(jié)果的場合下,可使用無符號數(shù)表示。例如,地址運(yùn)算,編號表示,等等示。例如,地址運(yùn)算,編號表示,等等u無符號數(shù)的編碼中沒有符號位無符號數(shù)的編碼中沒有符號位u能表示的最大值大于位數(shù)相同的帶符號整數(shù)的最大值(能表示的最大值大于位數(shù)相同的帶符號整數(shù)的最大值(Why?)?) 例如,例如,8位無符號整數(shù)最大是位無符號整數(shù)最大是255(1111 1111) 而而8位帶符號整數(shù)最大為位帶符號整數(shù)最大為127(0111 1111)u總是整數(shù),所以很多時候就簡稱為總是整數(shù),所以很多時候就簡稱為“無符號數(shù)無符

20、號數(shù)”MSB LSB2022-5-10Signed integer(帶符號整數(shù),定點(diǎn)整數(shù))(帶符號整數(shù),定點(diǎn)整數(shù))u計算機(jī)必須能處理正數(shù)計算機(jī)必須能處理正數(shù)(positive) 和負(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)已不用現(xiàn)已不用 Twos complement (補(bǔ)碼)補(bǔ)碼) 50年代以來,所有計算機(jī)都用補(bǔ)碼來表示定點(diǎn)整數(shù)年代以來,所有計算機(jī)都用補(bǔ)碼來表示定點(diǎn)整數(shù)u為什么用補(bǔ)碼表

21、示帶符號整數(shù)?為什么用補(bǔ)碼表示帶符號整數(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的表示唯一,方便使用的表示唯一,方便使用 比原碼和反碼多表示一個最小負(fù)數(shù)比原碼和反碼多表示一個最小負(fù)數(shù) 與移碼相比,其符號位和真值的符號對應(yīng)關(guān)系清楚與移碼相比,其符號位和真值的符號對應(yīng)關(guān)系清楚2022-5-10帶符號數(shù)和無符號數(shù)的比較帶符號數(shù)和無符號數(shù)的比較u擴(kuò)充操作擴(kuò)充操作有差別有差別 例如,例如,MIPS提供了兩種加載指令(提供了兩種加載指令(load byte unsigned / load byte)-無符號數(shù):無符號數(shù):lbu $t0, 0($s0) ;

22、 $t0高高24位補(bǔ)位補(bǔ)0 (稱為(稱為0擴(kuò)展)擴(kuò)展)-帶符號整數(shù):帶符號整數(shù): lb $t0, 0($s0) ; $t0高高24位補(bǔ)符位補(bǔ)符 (稱為符號擴(kuò)展)(稱為符號擴(kuò)展)u數(shù)的比較有差異數(shù)的比較有差異 無符號數(shù):無符號數(shù):MSB為為1的數(shù)比的數(shù)比MSB為為0的數(shù)大的數(shù)大 帶符號整數(shù):帶符號整數(shù): MSB為為1的數(shù)比的數(shù)比MSB為為0的數(shù)小的數(shù)小 例如,例如,MIPS中提供了不同的比較指令,如:中提供了不同的比較指令,如:-無符號數(shù):無符號數(shù):sltu $t0, $s0, $s1 (set less than unsigned)-帶符號整數(shù):帶符號整數(shù): slt $t1, $s0, $s1

23、 (set less than) 假定:假定: $s0=1111 1111 1111 1111 1111 1111 1111 1111 $s1=0000 0000 0000 0000 0000 0000 0000 0001 則:則:$t0和和$t1分別為多少?分別為多少? 答案:答案:$t0和和$t1分別為分別為0和和1。u溢出判斷有差異(無符號數(shù)根據(jù)最高位是否有進(jìn)位判斷溢出,通常不判)溢出判斷有差異(無符號數(shù)根據(jù)最高位是否有進(jìn)位判斷溢出,通常不判) MIPS規(guī)定:無符號數(shù)運(yùn)算溢出時,不產(chǎn)生規(guī)定:無符號數(shù)運(yùn)算溢出時,不產(chǎn)生“溢出異常溢出異?!盨KIP2022-5-10擴(kuò)展操作舉例擴(kuò)展操作舉例例

24、例1(擴(kuò)展操作):在(擴(kuò)展操作):在32位大端機(jī)上輸出位大端機(jī)上輸出si, usi, i, ui的十進(jìn)制和十六進(jìn)制值是什么?的十進(jìn)制和十六進(jìn)制值是什么?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 00BACK2022-5-10C語言程序中的整數(shù)語言程序中的整數(shù)關(guān)系表達(dá)式運(yùn)算類型結(jié)果說明0 = 0U-1 0-1 -2147483647-1214

25、7483647U -2147483647-12147483647 (int) 2147483648U-1 -2(unsigned) -1 -2無符號數(shù):無符號數(shù):unsigned int ( short / long);帶符號整數(shù):;帶符號整數(shù): int ( short / long)常在一個數(shù)的后面加一個常在一個數(shù)的后面加一個“u u”或或“U U”表示無符號數(shù)表示無符號數(shù)若同時有無符號和帶符號整數(shù),則若同時有無符號和帶符號整數(shù),則C編譯器將帶符號整數(shù)強(qiáng)制轉(zhuǎn)換為無符號數(shù)編譯器將帶符號整數(shù)強(qiáng)制轉(zhuǎn)換為無符號數(shù)假定以下關(guān)系表達(dá)式在假定以下關(guān)系表達(dá)式在3232位用補(bǔ)碼表示的機(jī)器上執(zhí)行,結(jié)果是什么?位

26、用補(bǔ)碼表示的機(jī)器上執(zhí)行,結(jié)果是什么?2022-5-10C語言程序中的整數(shù)語言程序中的整數(shù)關(guān)系關(guān)系表達(dá)式表達(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)111B (-1) 1110B (-

27、2)111B (232-1) 1110B (232-2)帶帶* *的結(jié)果與常規(guī)預(yù)想的相反!的結(jié)果與常規(guī)預(yù)想的相反!2022-5-10Example: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ù) 同一個數(shù)有多種表示形式。例:對于數(shù)同一個數(shù)有多種表示形式。例:對于數(shù) 1/1,000,000,000 Normalized (唯一的規(guī)格化形式唯一的規(guī)格化形式): 1.0 x 10-9

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

29、范圍。位浮點(diǎn)數(shù)格式的表數(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個數(shù)位表個數(shù)位表示示2424位尾數(shù)。位尾數(shù)。S階碼階碼E尾數(shù)尾數(shù)M最大正數(shù):最大正數(shù):0.111 x 2111 =(1-2-24) x 2

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

31、表示Normal format(規(guī)格化數(shù)形式)(規(guī)格化數(shù)形式) : +/-1.xxxxxxxxxxtwo x 2Exponent32-bit 規(guī)格化數(shù):規(guī)格化數(shù): 31 0 S Exponent Significand 1 bit ? bits ? bits S 是符號位(是符號位(Sign) Exponent用用 excess (or biased) notation(移碼移碼/增碼增碼)來表示來表示 Significand 表示表示 xxxxxxxxxxxxx,尾數(shù)部分,尾數(shù)部分 (基可以是基可以是 2/ 4 / 8 / 16,約定信息,無需顯式表示,約定信息,無需顯式表示 )早期的計算機(jī)

32、,各自定義自己的浮點(diǎn)數(shù)格式早期的計算機(jī),各自定義自己的浮點(diǎn)數(shù)格式問題:浮點(diǎn)數(shù)表示不統(tǒng)一會帶來什么問題?問題:浮點(diǎn)數(shù)表示不統(tǒng)一會帶來什么問題?小數(shù)點(diǎn)前面總是“1”,故可隱含表示2022-5-10“Father” of the IEEE 754 standard現(xiàn)在所有計算機(jī)都采用現(xiàn)在所有計算機(jī)都采用IEEE754IEEE754來表示浮點(diǎn)數(shù)來表示浮點(diǎn)數(shù)19701970年代后期年代后期, IEEE, IEEE成立委員會著手制定浮點(diǎn)數(shù)標(biāo)準(zhǔn)成立委員會著手制定浮點(diǎn)數(shù)標(biāo)準(zhǔn)19851985年完成浮點(diǎn)數(shù)標(biāo)準(zhǔn)年完成浮點(diǎn)數(shù)標(biāo)準(zhǔn)IEEE754IEEE754的制定的制定Prof. William Kahan www.c

33、/wkahan/ieee754status/754story.htmlThis standard was primarily the work of one person, UC Berkeley math professor William Kahan. 直到直到8080年代初,各個機(jī)器內(nèi)部的浮點(diǎn)數(shù)表示格式還沒有統(tǒng)一年代初,各個機(jī)器內(nèi)部的浮點(diǎn)數(shù)表示格式還沒有統(tǒng)一 因而相互不兼容,機(jī)器之間傳送數(shù)據(jù)時,帶來麻煩因而相互不兼容,機(jī)器之間傳送數(shù)據(jù)時,帶來麻煩 2022-5-10IEEE 754 Floating Point Standard Single Precisio

34、n : ( 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 (double)Exponent(階碼(階碼 / 指數(shù))指數(shù)): SP規(guī)格化數(shù)階碼范圍為規(guī)格化數(shù)階碼范圍為0000 0001 (-126) 1111 1110

35、 (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 (-127) 1111 1110 (126)2022-5-10Ex: Converting Binary FP to Decimal10111 1101 110 0

36、000 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 +0.25 = 1.75Represents: -1.75tenx2-2 = - 0.4375(-1)S x (1 + Significand) x 2(Exponent-127)BEE00000H is the hex. Rep.

37、 Of an IEEE 754 SP FP number2022-5-10Ex: Converting Decimal to FP-12.75 1. Denormalize: -12.752. Convert integer part: 12 = 8 + 4 = 110023. Convert fractional part: .75 = .5 + .25 = .1124. Put parts together and normalize: 1100.11 = 1.10011 x 235. Convert exponent: 127 + 3 = 128 + 2 = 1000 001021100

38、0 0010 100 1100 0000 0000 0000 0000The Hex rep. is C14C0000H2022-5-10Normalized numbers(規(guī)格化數(shù))(規(guī)格化數(shù))Exponent Significand Object1-254 anything Norms implicit leading 10 0 ?0 nonzero ? 255 0 ?255 nonzero ?前面的定義都是針對規(guī)格化數(shù)(前面的定義都是針對規(guī)格化數(shù)(normalized form)How about other patterns?2022-5-10Representation for 0

39、How to represent 0? exponent: all zeros significand: all zeros What about sign? Both cases valid. +0: 0 00000000 00000000000000000000000 -0: 1 00000000 000000000000000000000002022-5-10Representation for +/- How to represent +/-? Exponent : all ones (11111111B = 255) Significand: all zeros + : 0 1111

40、1111 00000000000000000000000 - : 1 11111111 00000000000000000000000Operations 5 / 0 = +, -5 / 0 = - 5+(+) = +, (+)+(+) = + 5 - (+) = -, (-) - (+) = - etc為什么要這樣處理為什么要這樣處理? 可以利用可以利用+/-作比較。作比較。 例如:例如:X/0Y可作為有效比較可作為有效比較In FP, 除數(shù)為除數(shù)為0的結(jié)果是的結(jié)果是 +/- , 不是溢出異常不是溢出異常. :infinity2022-5-10Representation for “Not

41、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 to represent NaN Exponent = 255 Significand: nonzero NaNs can help with debugging2022-5-10What have we defined so far? (for SP)Represen

42、tation for Denorms(非規(guī)格化數(shù)非規(guī)格化數(shù)) Used to represent Denormalized numbers Exponent Significand Object0 0 +/-00 nonzero Denorms 1-254 anything Norms implicit leading 1255 0 +/- infinity255 nonzero NaN2022-5-10Representation for Denorms2-1262-1252-1242-1231.00 x2-126 1.11x2-1260.00 x2-126 0.11x2-1262-1262

43、-1252-1242-12300GAP Normalized numbersDenorms(-1)s0.aaa 2-1262022-5-10Questions about IEEE 754uWhats 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) ) printf (“true”); if

44、( 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.0How about double? How about double?True!Not always true!約約 +3.4 X 1038約約 +1.8 X 103082022-5-10u數(shù)值數(shù)

45、據(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)Decimal (十進(jìn)制數(shù)十進(jìn)制數(shù))o 用用ASCII碼表示碼表示o 用用BCD(Binary coded Decimal)碼表示)碼表示u計算機(jī)中為什么要用十進(jìn)制數(shù)表示數(shù)值?計算機(jī)中為什么要用十進(jìn)制數(shù)表示數(shù)值? 日常使用的都是十進(jìn)制數(shù),所以,計算機(jī)外部都使用十進(jìn)制數(shù)。在一日常使

46、用的都是十進(jìn)制數(shù),所以,計算機(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ī)內(nèi)部直接用十進(jìn)制數(shù)表示數(shù)值。換,在計算機(jī)內(nèi)部直接用十進(jìn)制數(shù)表示數(shù)值。 十進(jìn)制數(shù)的表示十進(jìn)制數(shù)的表示2022-5-10用用ASCII碼表示十進(jìn)制數(shù)碼表示十進(jìn)制數(shù)u前分隔數(shù)字串前分隔數(shù)字串 符號位單獨(dú)用一個字節(jié)表示,位于數(shù)字串之前。符號位單獨(dú)用一個字節(jié)表示,位于數(shù)字串之前。 正號用正號用“+”的的ASCII碼碼(2BH)表示;負(fù)號用表示;負(fù)號用“-”的的ASCII碼碼(2DH)表示表示 例:十進(jìn)制數(shù)例:十進(jìn)制數(shù)+

47、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ù)字串 符號位嵌入最低位數(shù)字的符號位嵌入最低位數(shù)字的ASCII碼高碼高4位中。比前分隔方式位中。比前分隔方式省一個字節(jié)。省一個字節(jié)。 正數(shù)不變;負(fù)數(shù)高正數(shù)不變;負(fù)數(shù)高4位變?yōu)槲蛔優(yōu)?111. 例:十進(jìn)制數(shù)例:十進(jìn)制數(shù)+236表示為表示為: 32 33 36H 0011 001

48、0 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碼才能計算。碼才能計算。2022-5-10u編碼思想編碼思想: 每個十進(jìn)數(shù)位至少有每個十進(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)碼- 每個十進(jìn)制數(shù)位的每個十進(jìn)

49、制數(shù)位的4個二進(jìn)制位(稱為基個二進(jìn)制位(稱為基2碼)都有一個確定的權(quán)。碼)都有一個確定的權(quán)。8421碼是最常用的十進(jìn)制有權(quán)碼。也稱自然碼是最常用的十進(jìn)制有權(quán)碼。也稱自然BCD(NBCD)碼。)碼。2 十進(jìn)制無權(quán)碼十進(jìn)制無權(quán)碼- 每個十進(jìn)制數(shù)位的每個十進(jìn)制數(shù)位的4個基個基2碼沒有確定的權(quán)。在無權(quán)碼方案中,用的碼沒有確定的權(quán)。在無權(quán)碼方案中,用的較多的是余較多的是余3碼和格雷碼。碼和格雷碼。3其他編碼方案其他編碼方案 (5中取中取2碼、獨(dú)熱碼等)碼、獨(dú)熱碼等)u符號位的表示:符號位的表示: “+”:1100 ; “-”:1101 例:例:+236=(1100 0010 0011 0110)8421

50、 (占占2個字節(jié)個字節(jié)) - 2369=(1101 0000 0010 0011 0110 1001)8421 (占占3個字節(jié)個字節(jié))用用BCD碼表示十進(jìn)制數(shù)碼表示十進(jìn)制數(shù)補(bǔ)補(bǔ)0 0以使數(shù)占滿一個字節(jié)以使數(shù)占滿一個字節(jié)2022-5-10第一講小結(jié)第一講小結(jié)u在機(jī)器內(nèi)部編碼后的數(shù)稱為機(jī)器數(shù),其值稱為真值在機(jī)器內(nèi)部編碼后的數(shù)稱為機(jī)器數(shù),其值稱為真值u定義數(shù)值數(shù)據(jù)有三個要素:進(jìn)制、定點(diǎn)定義數(shù)值數(shù)據(jù)有三個要素:進(jìn)制、定點(diǎn)/浮點(diǎn)、編碼浮點(diǎn)、編碼u整數(shù)的表示整數(shù)的表示無符號數(shù):正整數(shù),用來表示地址等;帶符號整數(shù):用補(bǔ)碼表示無符號數(shù):正整數(shù),用來表示地址等;帶符號整數(shù):用補(bǔ)碼表示uC語言中的整數(shù)語言中的整數(shù)

51、無符號數(shù):無符號數(shù):unsigned int ( short / long);帶符號數(shù):;帶符號數(shù): int ( short / long)u浮點(diǎn)數(shù)的表示浮點(diǎn)數(shù)的表示符號符號;尾數(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ù)和是否規(guī)格化有關(guān)與尾數(shù)的位數(shù)和是否規(guī)格化有關(guān)u浮點(diǎn)數(shù)的表示(浮點(diǎn)數(shù)的表示(IEEE754標(biāo)準(zhǔn)):標(biāo)準(zhǔn)):單精度單精度SP(float)和雙精

52、度)和雙精度DP(double)- 規(guī)格化數(shù)規(guī)格化數(shù)(SP):階碼:階碼1254,尾數(shù)最高位隱含為,尾數(shù)最高位隱含為1- “零零” (階為全階為全0,尾為全,尾為全0)- (階為全階為全1,尾為全,尾為全0)- NaN (階為全階為全1,尾為非,尾為非0)- 非規(guī)非規(guī)格化格化數(shù)數(shù) (階為全階為全0,尾為非,尾為非0,沒有隱藏位,沒有隱藏位)(P.42倒數(shù)第倒數(shù)第9行說明)行說明)u十進(jìn)制數(shù)的表示:十進(jìn)制數(shù)的表示:用用ASCII碼或碼或BCD碼表示碼表示1010在計算機(jī)中在計算機(jī)中有幾種可能的有幾種可能的表示?表示? -10呢?呢?2022-5-10“轉(zhuǎn)換轉(zhuǎn)換”的概念在數(shù)據(jù)表示中的反映的概念在數(shù)

53、據(jù)表示中的反映感覺媒體信息感覺媒體信息數(shù)組、鏈表等結(jié)構(gòu)化數(shù)據(jù)描述數(shù)組、鏈表等結(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í)現(xiàn)現(xiàn)抽抽象象概概括括2022-5-10第二講第二講 非數(shù)值數(shù)據(jù)、數(shù)據(jù)排列、糾非數(shù)值數(shù)據(jù)、數(shù)據(jù)排列、糾/檢錯檢錯主主 要要 內(nèi)內(nèi) 容容u非數(shù)值數(shù)據(jù)的表示非數(shù)值數(shù)據(jù)的表示邏輯

54、數(shù)據(jù)、西文字符、漢字邏輯數(shù)據(jù)、西文字符、漢字u數(shù)據(jù)的寬度數(shù)據(jù)的寬度u數(shù)據(jù)的存儲排列數(shù)據(jù)的存儲排列大端方式、小端方式大端方式、小端方式u數(shù)據(jù)的糾錯和檢錯數(shù)據(jù)的糾錯和檢錯奇偶校驗、海明校驗、循環(huán)冗余校驗奇偶校驗、海明校驗、循環(huán)冗余校驗2022-5-10u表示表示用一位表示用一位表示 。例如,真:。例如,真:1 / 假:假:0N位二進(jìn)制數(shù)可表示位二進(jìn)制數(shù)可表示N個邏輯數(shù)據(jù),或一個位串個邏輯數(shù)據(jù),或一個位串u運(yùn)算運(yùn)算 按位進(jìn)行按位進(jìn)行 如如:按位與按位與 / 按位或按位或 / 邏輯左移邏輯左移 / 邏輯右移邏輯右移 等等 u識別識別 邏輯數(shù)據(jù)和數(shù)值數(shù)據(jù)在形式上并無差別,也是一串邏輯數(shù)據(jù)和數(shù)值數(shù)據(jù)在形式

55、上并無差別,也是一串0/1序序列,機(jī)器靠指令來識別。列,機(jī)器靠指令來識別。u位串位串 用來表示若干個狀態(tài)位或控制位(用來表示若干個狀態(tài)位或控制位(OS中使用較多)中使用較多) 例如,例如,x86的標(biāo)志寄存器含義如下:的標(biāo)志寄存器含義如下: 邏輯數(shù)據(jù)的編碼表示邏輯數(shù)據(jù)的編碼表示CFPFAFZFSFTFIFDFOF2022-5-10u特點(diǎn)特點(diǎn) 是一種拼音文字,用有限幾個字母可拼寫出所有單詞是一種拼音文字,用有限幾個字母可拼寫出所有單詞 只對有限個字母和數(shù)學(xué)符號、標(biāo)點(diǎn)符號等輔助字符編碼只對有限個字母和數(shù)學(xué)符號、標(biāo)點(diǎn)符號等輔助字符編碼 所有字符總數(shù)不超過所有字符總數(shù)不超過256個,使用個,使用7或或8

56、個二進(jìn)位可表示個二進(jìn)位可表示u表示(表示(常用編碼為常用編碼為7位位ASCII碼)碼) 十進(jìn)制數(shù)字:十進(jìn)制數(shù)字:0/1/2/9 英文字母:英文字母:A/B/Z/a/b/z 專用符號:專用符號:+/-/%/*/&/ 控制字符(不可打印或顯示)控制字符(不可打印或顯示)u操作操作 字符串操作,如字符串操作,如:傳送傳送/比較等比較等 西文字符的編碼表示西文字符的編碼表示必須熟悉對應(yīng)必須熟悉對應(yīng)的的ASCII碼!碼!2022-5-10u特點(diǎn)特點(diǎn) 漢字是表意文字,一個字就是一個方塊圖形。漢字是表意文字,一個字就是一個方塊圖形。 漢字?jǐn)?shù)量巨大,總數(shù)超過漢字?jǐn)?shù)量巨大,總數(shù)超過6萬字,給漢字在計算機(jī)

57、內(nèi)部的表示、漢萬字,給漢字在計算機(jī)內(nèi)部的表示、漢字的傳輸與交換、漢字的輸入和輸出等帶來了一系列問題。字的傳輸與交換、漢字的輸入和輸出等帶來了一系列問題。u編碼形式編碼形式 有以下幾種漢字代碼:有以下幾種漢字代碼: 輸入碼:輸入碼:對漢字用相應(yīng)按鍵進(jìn)行編碼表示,用于輸入對漢字用相應(yīng)按鍵進(jìn)行編碼表示,用于輸入 內(nèi)碼:內(nèi)碼:用于在系統(tǒng)中進(jìn)行存儲、查找、傳送等處理用于在系統(tǒng)中進(jìn)行存儲、查找、傳送等處理 字模點(diǎn)陣或輪廓描述字模點(diǎn)陣或輪廓描述: 描述漢字字模點(diǎn)陣或輪廓,用于顯示描述漢字字模點(diǎn)陣或輪廓,用于顯示/打印打印 漢字及國際字符的編碼表示漢字及國際字符的編碼表示問題:西文字符有沒有輸入碼?有沒有內(nèi)碼

58、?問題:西文字符有沒有輸入碼?有沒有內(nèi)碼?有沒有字模點(diǎn)陣或輪廓描述?有沒有字模點(diǎn)陣或輪廓描述?2022-5-10向計算機(jī)輸入漢字的方式:向計算機(jī)輸入漢字的方式: 手寫漢字聯(lián)機(jī)識別輸入,或者是印刷漢字掃描輸入后自動識別,手寫漢字聯(lián)機(jī)識別輸入,或者是印刷漢字掃描輸入后自動識別,這兩這兩種方法現(xiàn)均已達(dá)到實(shí)用水平。種方法現(xiàn)均已達(dá)到實(shí)用水平。 用語音輸入漢字用語音輸入漢字,雖然簡單易操作,但離實(shí)用階段還相差很遠(yuǎn)。,雖然簡單易操作,但離實(shí)用階段還相差很遠(yuǎn)。 利用英文鍵盤輸入漢字利用英文鍵盤輸入漢字:每個漢字用一個或幾個鍵表示,這種對每個漢字用一個或幾個鍵表示,這種對每個漢字用相應(yīng)按鍵進(jìn)行的編碼稱為漢字每個

59、漢字用相應(yīng)按鍵進(jìn)行的編碼稱為漢字“輸入碼輸入碼”,又稱外碼。,又稱外碼。輸入碼的碼元為按鍵。是最簡便、最廣泛的漢字輸入方法。輸入碼的碼元為按鍵。是最簡便、最廣泛的漢字輸入方法。 常用的方法有:搜狗拼音、五筆字型、智能常用的方法有:搜狗拼音、五筆字型、智能ABC、微軟拼音等微軟拼音等使用漢字輸入碼的原因:使用漢字輸入碼的原因: 鍵盤面向西文設(shè)計鍵盤面向西文設(shè)計,一個或兩個西文字符對應(yīng)一個按鍵,非常方便。,一個或兩個西文字符對應(yīng)一個按鍵,非常方便。 漢字是大字符集,漢字是大字符集,專門的漢字輸入鍵盤由于鍵多、查找不便、成本高專門的漢字輸入鍵盤由于鍵多、查找不便、成本高等原因而幾乎無法采用。等原因而

60、幾乎無法采用。漢字的輸入碼漢字的輸入碼2022-5-10問題:西文字符常用的內(nèi)碼是什么?問題:西文字符常用的內(nèi)碼是什么?對于漢字內(nèi)碼的選擇,必須考慮以下幾個因素:對于漢字內(nèi)碼的選擇,必須考慮以下幾個因素: 不能有二義性,即不能和不能有二義性,即不能和ASCII碼有相同的編碼。碼有相同的編碼。 盡量與漢字在字庫中的位置有關(guān),便于漢字查找和處理。盡量與漢字在字庫中的位置有關(guān),便于漢字查找和處理。 編碼應(yīng)盡量短。編碼應(yīng)盡量短。國標(biāo)碼(國標(biāo)交換碼)國標(biāo)碼(國標(biāo)交換碼) 1981年我國頒布了信息交換用漢字編碼字符集年我國頒布了信息交換用漢字編碼字符集基本集基本集(GB231280)。該標(biāo)準(zhǔn)選出該標(biāo)準(zhǔn)選出6763

溫馨提示

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

評論

0/150

提交評論