410 likes | 623 Views
第 5 章 數字系統與資料表示法. 本堂課重點. 5-1 認識數字系統 5-2 數字系統間的轉換 5-3 負數的表示 5-4 浮點數的表示法 5-5 文字的表示法. 5- 1 認識數字系統. 5-1-1 為什麼要有數字系統 5-1-2 常見的數字系統. 5-1-1 為什麼要有數字系統. 全世界各地有許多不同的語言在使用 , 例如中文、英文、日文 ……, 不知您是否曾想過:為什麼要有 “ 語言 ” 的產生呢?其答案是為了方便彼此溝通。例如 屬於不同地方的兩個人碰面了 , 他們就必須有一個共同瞭解的語言才能溝通 。
E N D
本堂課重點 • 5-1 認識數字系統 • 5-2 數字系統間的轉換 • 5-3 負數的表示 • 5-4 浮點數的表示法 • 5-5 文字的表示法
5- 1 認識數字系統 • 5-1-1 為什麼要有數字系統 • 5-1-2 常見的數字系統
5-1-1 為什麼要有數字系統 • 全世界各地有許多不同的語言在使用, 例如中文、英文、日文……, 不知您是否曾想過:為什麼要有 “語言” 的產生呢?其答案是為了方便彼此溝通。例如屬於不同地方的兩個人碰面了, 他們就必須有一個共同瞭解的語言才能溝通。 • 在電腦裡, 有二進位(Binary)、八進位(Octal)、十進位(Decimal)、十六進位(Hexadecimal) 等各種不同的數字系統 (Number System), 這些數字系統也都是為了方便溝通使用。
5-1-2 常見的數字系統 • 常見的數字系統: • 十進位數字系統:十進位是一套以 10 為基數, 逢 10 即進位的數字系統 • 二進位數字系統:二進位是一套以 2 為基數, 逢 2 即進位的數字系統 • 八進位數字系統:八進位是一套以 8 為基數, 逢 8 即進位的數字系統 • 十六進位數字系統:十六進位是一套以 16 為基數, 逢 16 即進位的數字系統
5-2 數字系統間的轉換 • 5-2-1 轉換數字系統時的基本觀念 • 5-2-2 二進位與十進位間的轉換 • 5-2-3 八進位與十進位間的轉換 • 5-2-4 十六進位與十進位間的轉換 • 5-2-5 八進位與二進位間的轉換 • 5-2-6 十六進位與二進位間的轉換 • 5-2-7 十六進位與八進位間的轉換
5-2 數字系統間的轉換 • 由於電腦內部是以二進位 形式來處理資料, 所以當 我們輸入資料時, 電腦會 自動將它轉換成二進位 的形式。
5-2-1 轉換數字系統時的基本觀念 • 我們先用最熟悉的十進位數字系統來說明: • 對於任何十進位的正數 N, 假設包含 p 位整數和q 位小數, 則一定可用此多項式來表示:
5-2-1 轉換數字系統時的基本觀念 • 將以上的觀念擴展到 K 進位的數字系統, 則成為 (將 10 換成 K): N 為 K 進位的正數, p=整數的位數, q=小數的位數
5-2-2 二進位與十進位間的轉換 • 二進位轉換成十進位 • 二進位轉換成十進位時, 其二進位整數部份, 在小數點左邊第一位的位值為20、第二位的位值為 21、第三位的位值為22...;而小數部分,在小數點右邊第一位的位值為 2-1、 第二位的位 值為 2-2 ... 依序類推。
5-2-2 二進位與十進位間的轉換 • 要將其轉為十進位, 只要將每一個二進位數乘以該數的位值, 然後相加即可獲得相對應的十進位數值:
5-2-2 二進位與十進位間的轉換 • 十進位轉換成二進位 • 整數部分 • 採連續除以 2 , 並保留 「餘數」 , 直到除法運算後的商數為 0 時停止;然後由最後一次產生的餘數開始, 依序由左向 右排列, 即 可完成整數 部分的轉換 。
5-2-2 二進位與十進位間的轉換 • 小數部分 • 將小數部份乘以 2 , 保留所得乘積的 「整數部分」 , 繼續將乘法運算後所得的小數部分乘以 2 , 直到所得的小數為 0 時停止;然後由第一次取得的整數開始, 依序由左向 右排列, 即 可完成小數 部分的轉換。
5-2-3 八進位與十進位間的轉換 • 八進位轉換成十進位 • 以 (127.3)8轉換成十進位來做示範:
5-2-3 八進位與十進位間的轉換 • 十進位轉換成八進位 • 以 (87.375)10來示範 • 整數部份
5-2-3 八進位與十進位間的轉換 • 小數部份 • 最後將整數部份加上小數部份:127 + 0.3 = 127.3 。所以 (87.375)10 = (127.3)8
5-2-4 十六進位與十進位間的轉換 • 十六進位轉換成十進位 • 我們以 (BCE.1E)16轉換成十進位來做示範:
5-2-4 十六進位與十進位間的轉換 • 十進位轉換成十六進位 • 以(43969.71875)10轉成十六進位來做示範 • 整數部份
5-2-4 十六進位與十進位間的轉換 • 小數部份 • 最後將整數部份加上小數部份:ABC1+ 0.B8 = ABC1.B8 。所以 (43969.71875)10 = (ABC1.B8)16
5-2-5 八進位與二進位間的轉換 • 二進位轉換成八進位 • 以 (11100001110.101)2轉換成八進位來做示範:
5-2-5 八進位與二進位間的轉換 • 八進位轉換成二進位 • 以 (3416.5)8轉換成二進位為例來做示範:
5-2-6 十六進位與二進位間的轉換 • 二進位轉換成十六進位 • 以 (1011111001.0011101)2轉換成十六進位來做示範:
5-2-6 十六進位與二進位間的轉換 • 十六進位轉換成二進位 • 以 (2F9.3A)16轉換成二進位為例來做示範:
5-2-7 十六進位與八進位間的轉換 • 八進位轉換成十六進位 • 以 (346.7)8轉換成十六進位為例來做示範:
5-2-7 十六進位與八進位間的轉換 • 十六進位轉換成八進位 • 以 (E6.E)16轉換成八進位為例來做示範:
5-3 負數的表示法 • 5-3-1 最高位元表示法 • 5-3-2 1 的補數表示法 • 5-3-3 2 的補數表示法 • 常見的表示法有以下三種: • 最高位元表示法 (也稱為附加符號表示法) • 1 的補數表示法 • 2 的補數表示法
5-3-1 最高位元表示法 • 使用 1 的補數 (1's Complement) 表示法時, 一個數的負數即是將該數的每一位元數值 0、1 互換 (即 1 變 0, 0 變 1)。 5-3-2 1的補數表示法
5-3-3 2的補數表示法 • 在 2 的補數 (2's Complement) 表示法裡, 一個數的負數即是其 1 的補數值再加 1,
5-4 浮點數的表示法 • 正規化 • 所謂的正規化, 是將該數字轉換成二進位的 1.xxxxxx × 2指數的形式。 • 例如要計算 (12.25) 10經正規化的結果, 需先將其轉換為二進位 (12.25)10=(1100.01)2 , 再正規化成 1.10001 × 23。此時, 1.10001 × 23可解讀出以下資訊, 這些資訊將在轉換成浮點數表示法時用到: • 此數值為正數。 • 指數為 3。 • 小數部分為 10001。
5-4 浮點數的表示法 • 浮點數表示法 • 不同 CPU 雖有其各自的浮點數表示法, 但一般較常採用 IEEE 協會所訂定的浮點數表示法標準( IEEE Standa rd 754), 其分成單精確度 (Single Precision) 及雙精確度 (Double Precision) 二種。 兩者的差別在於單精確度是以 32 個位元來表示浮點數, 雙精確度則是用 64 位元表示。
5-4 浮點數的表示法 • 浮點數表示法 • 正/負符號:表示這個數字是正數還是負數, 用 0 表示正數, 1 表示負數。 • 偏差指數:表示這個數字的指數部分。 • 小數部份:表示這個數字的小數部分。
5-4 浮點數的表示法 • 以 (12.25)10為例, 看看如何以單精確度的浮點數表示法來表示。首先, 它是個正數, 所以第一個位元已經確定是 0。 • 接著將其正規化成 1.10001 × 23, 此時便可計算出偏差指數為 3 + 127 =130, 再把 130 轉換為長度為 8 位元的二進位 (10000010)2 , 於是可以得到偏差指數的部份就是 10000010 。
5-4 浮點數的表示法 • 最後是小數部份, 小數部份即是正規化後二進位的小數部份, 至於小數點前面那個 1, 則因為所有正規化的數字都有, 所以不用記錄, 只要顯示後面的小數部份 10001, 但小數共有 23 個位元, 所以要把後面的位元補上 0。最後得到的浮點數表示如下:
5-5 文字的表示法 • 將文字資料轉換成二進位碼的系統就稱為編碼系統。
5-5 文字的表示法 • 常用的英文電腦編碼系統 • ASCII 碼:是美國標準資訊交換碼 (American Standard Code for Information Interchange) 的縮寫;它不但包含英文大、小寫字母, 還有阿拉伯數字、控制字元以及各種符號。 • ISO8859 碼:由於歐洲地區語系的文字除了 26 個英文字母(也就是拉丁字母)外, 還包含了拉丁字母的變形(例如上下標)與其他字母(例如希臘字母)等, 因此 ASCII 碼的 128 個字元顯然不夠用。
5-5 文字的表示法 • EBCDIC 碼:EBCDIC 碼的全名是 Extended Binary Code Decimal Interchange Code, 是美國 IBM 公司所制定的編碼系統, 主要使用在 IBM 一部份大型主機上。
5-5 文字的表示法 • 常用的中文電腦編碼系統 • Big5 碼:由資策會工業局聯合 13 家業者於 1984 年所共同制定的編碼系統, 包含了 5401個常用字、7652 個次常用字及 408 個符號 (含標點符號、注音符號、單位符號……), 共 13461 個字。 • CP950 碼:CP950 (CodePage 950) 碼也稱為 MS950 碼, 由微軟公司所發展, 從 Big5 碼擴充而來的, 其應用於微軟的 Windows 作業系統中。
全球統一的編碼系統 • 它是由 Unicode 協會及 ISO 國際標準化組織針對各國文字、符號制定的統一性編碼系統, 將全球語言編在一起, 而達成統一編碼的目的。