1 / 102

第 5 章數字系統與 資料表示法

第 5 章數字系統與 資料表示法. 本堂課重點. 5-1 認識數字系統 5-2 數字系統間的轉換 5-3 負數的表示法 5-4 浮點數的表示法 5-5 文字的表示法. 5-1 認識數字系統. 5-1-1 為什麼要有數字系統 5- 1- 2 常見的數字系統. 5-1-1 為什麼要有數字系統. 全世界各地有許多不同的語言在使用 , 例如中文、英文、日文 …… , 不知您是否曾想過:為什麼要有 " 語言 " 的產生呢?其答案是為了方便彼此溝通。例如屬於不同地方的兩個人碰面了 , 他們就必須有一個共同瞭解的語言才能溝通。

rasul
Download Presentation

第 5 章數字系統與 資料表示法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第5章數字系統與資料表示法

  2. 本堂課重點 • 5-1 認識數字系統 • 5-2 數字系統間的轉換 • 5-3 負數的表示法 • 5-4 浮點數的表示法 • 5-5 文字的表示法

  3. 5-1 認識數字系統 • 5-1-1 為什麼要有數字系統 • 5- 1- 2 常見的數字系統

  4. 5-1-1 為什麼要有數字系統 • 全世界各地有許多不同的語言在使用, 例如中文、英文、日文……, 不知您是否曾想過:為什麼要有 "語言" 的產生呢?其答案是為了方便彼此溝通。例如屬於不同地方的兩個人碰面了, 他們就必須有一個共同瞭解的語言才能溝通。 • 電腦的資料表示也是如此, 在電腦裡, 有二進位 (Binary)、八進位 (Octal)、十進位 (Decimal)、十六進位 (Hexadecimal) 等各種不同的數字系統 (Number System), 這些數字系統也都是為了方便溝通使用。我們首先來看看電腦的基本問題。

  5. 為什麼要有數字系統 • 上面是一個機器, 先不管這機器的功能為何, 請您試著以中文、英文、或日文描述一下開關設定的情形?您會發現都不太好描述, 不是嗎?

  6. 為什麼要有數字系統 • 現在讓我們換另一種方式來描述看看, 此即為二進位的描述法。我們以 "1"代表開(向上), 以 "0" 代表關(向下), 由下圖就很容易地看出, 該機器正在執行把開關設定為 01001111 的工作:

  7. 為什麼要有數字系統 • 下圖則是上面這台機器的背面, 這個機器是以 "有沒有來電" 來與我們溝通訊息!一般人常在儀表板上看到一些明暗訊號, 如果有機會自己把儀表板取下來研究一番, 便會發現其原理確實與我們在上面所描繪的一樣。所以用心的思考一下便會發現, 以二進位的方式來描述機器內部的訊息也是蠻適當的。

  8. 為什麼要有數字系統

  9. 為什麼要有數字系統 • 問題是這部機器只有 8 個開關, 如果有 16 個開關的話, 請問有沒有人能很快的讀出下面這 2 種設定有何不同:

  10. 為什麼要有數字系統 • 現在您應該可以感覺出來二進位並不是很適合人類閱讀。這時候若用十六進位的方法來表示, 就容易閱讀些:

  11. 為什麼要有數字系統 • CED2 和 CC90 比 1100111011010010 和 1100110010010000 來得容易區別吧!所以各種符號系統都有它適用的地方。電腦內部的資料適合以二進位來描述, 但人卻不善於使用 10001010110101101 這種長長一串的數字表示法,因此才折衷採用十六進位。

  12. 在電腦中, 還可見到十六進位制嗎? • 目前我們操作電腦時, 所見到的數字系統大都是十進位, 但有些地方仍可見到十六進位的表示法, 例如在 Windows 的命令提示字元交談窗中, 輸入 "dir" 指令, 即可看到 "磁碟區序號:" 欄位會顯示十六進位制的數值;而輸入 "ipconfig /all" 指令, 所看到網路卡的"實體位址" 欄位也是以十六進位制表示。

  13. 5- 1- 2 常見的數字系統 • 其實自古以來, 人類雖已習慣以十進位來計算事物, 但同時也會使用到其他的數字系統, 最典型的例子如時間的計算, 時與分的換算採用六十進位;而日與時則為二十四進位;年與月則是使用十二進位來換算;另外我們也會用一打 (12個) 這樣的單位來計算東西的數量, 而傳統的重量單位:台斤與兩的計算, 則是十六進位, 即 1 台斤等於 16 兩。電腦和人一樣, 亦有屬於自己的數字系統, 如二進位、八進位和十六進位, 底下將分別對這些數字系統加以介紹。

  14. 常見的數字系統 • 十進位數字系統:十進位是一套以 10 為基數, 逢 10 即進位的數字系統, 由0、1、2、3、4、5、6、7、8、9 等十個數元所組成, 這套數字系統是目前人類世界中最被廣泛採用的一套系統。 • 二進位數字系統:二進位是一套以 2 為基數, 逢 2 即進位的數字系統, 在此系統下, 任何數都只能用 0 和 1 兩種數元所組成的符號來表示。這套系統即是電腦所使用的數字系統。

  15. 常見的數字系統 • 八進位數字系統:八進位是一套以 8 為基數, 逢 8 即進位的數字系統, 在此系統下, 我們只能使用 0、1、2、3、4、5、6、7 等八種數元, 如果運算過程中產生了大於或等於 8 的數, 便要往前進位。 • 十六進位數字系統:十六進位是一套以 16 為基數, 逢 16 即進位的數字系統,此數字系統是由 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 等十六個數元所組成, 相對於十進位來看的話, A=10 、B=11 、C=12、D=13 、E=14 、F=15。

  16. 常見的數字系統 • 下表將十進位數字 0 到 15 分別以二、八與十六進位來表示:

  17. 5-2 數字系統間的轉換 • 由於電腦內部是以二進位形式來處理資料, 所以當我們輸入資料時, 電腦會自動將它轉換成二進位的形式。以下就讓我們進一步來探討各數字系統之間互相轉換的方法。

  18. 數字系統間的轉換 • 5-2-1 轉換數字系統時的基本觀念 • 5-2-2 二進位與十進位間的轉換 • 5-2-3 八進位與十進位間的轉換 • 5-2-4 十六進位與十進位間的轉換 • 5-2-5 八進位與二進位間的轉換 • 5-2-6 十六進位與二進位間的轉換 • 5-2-7 十六進位與八進位間的轉換

  19. 5-2-1 轉換數字系統時的基本觀念 • 我們先用最熟悉的十進位數字系統來說明: • 因此, 對於任何十進位的正數 N, 假設包含 p 位整數和q 位小數, 則一定可以用以下的多項式來表示:

  20. 轉換數字系統時的基本觀念 • 要注意的是, p 位整數代表有 100 、102、103 、…10p-1 這些位數, 由於是從 0 起算, 所以只到 p-1, 而非p。而小數部分則是從 1 起算, 所以有10-1 到10-q 這些位數。 • 將以上的觀念擴展到 K 進位的數字系統, 則成為 (將 10 換成 K):

  21. 轉換數字系統時的基本觀念 • N 為 K 進位的正數, p = 整數的位數, q = 小數的位數 • 在以上的多項式中, K 就是所謂的『基底 (Base, 又稱為 Radix)』。換言之, 平常所謂的十進位, 就代表基底為 10;二進位代表基底為 2。而在不同的數字系統之間轉換, 便是『基底轉換 (Base Conversion)』。

  22. 轉換數字系統時的基本觀念 • 後續各小節會說明基底轉換的各種方式與技巧, 有的直接用心算、有的必須用筆算才能算出答案。無論如何, 它們的基本原理都是以上述的多項式所發展出來的。所以當我們忘了某些方式或技巧時, 只要先將數字以上述的多項式來表示, 就能在任何數字系統之間互相轉換。

  23. 5-2-2 二進位與十進位間的轉換 • 二進位轉換成十進位 • 十進位轉換成二進位

  24. 二進位轉換成十進位 • 二進位轉換成十進位時, 其二進位整數部份, 在小數點左邊第一位的位值為20、第二位的位值為 21、第三位的位值為 22 ...;而小數部分, 在小數點右邊第一位的 位值為 2-1、第二位 的位值為 2-2 ...等依 序類推。以下我們 以 (11101.11)2來做 示範。

  25. 二進位轉換成十進位 • 要將其轉為十進位, 只要將每一個二進位數乘以該數的位值, 然後相加即可獲得相對應的十進位數值:

  26. 十進位轉換成二進位 • 將十進位轉換成二進位, 可分為兩個部份來處理;在此我們以 (29.25)10轉換成二進位來做示範。 • 整數部分 • 採連續除以 2 , 並保留 「餘數」 , 直到除法運算後的商數為 0 時停止;然後由最後一次產生的餘數開始, 依序由左向右排列, 即可完成整數部分的轉換。

  27. 十進位轉換成二進位

  28. 十進位轉換成二進位 • 小數部分 • 將小數部份乘以 2 , 保留所得乘積的 「整數部分」 , 繼續將乘法運算後所得的小數部分乘以 2 , 直到所得的小數為 0 時停止;然後由第一次取得的整數開始, 依序由左向右排列, 即可完成小數部分的轉換。

  29. 十進位轉換成二進位 • 最後將整數部份加上小數部份:11101 + 0.01 = 11101.01 。所以 (29.25)10 =(11101.01)2

  30. 5-2-3 八進位與十進位間的轉換 • 八進位轉換成十進位 • 十進位轉換成八進位

  31. 八進位轉換成十進位 • 八進位的轉換原理和二進位相同, 其八進位整數部份, 在小數點左邊第一位的位值為 80、第二位的位值為 81 ...;而小數部份, 在小數點右邊第一位的位值為 8-1、第二位的位值 8-2 ...。因此八進位轉換成十進位, 只要將每一個八進位數乘以該數的位值, 然後相加即可求得。在此我們以 (127.3)8轉換成十進位來做示範:

  32. 十進位轉換成八進位 • 要將十進位轉成八進位, 同樣地可分為整數與小數兩部份來處理。在此我們以 (87.375)10來示範。

  33. 十進位轉換成八進位 • 整數部份 • 採連續除以 8 , 並保留 「餘數」 , 直到除法運算後的商數為 0 時停止;然後由最後一次產生的餘數開始, 依序由左向右排列, 即可完成整數部分的轉換。

  34. 十進位轉換成八進位 • 小數部份 • 將小數部份乘以 8 , 保留所得乘積的 「整數部分」, 繼續將乘法運算後所得的小數部分乘以 8 , 直到所得的小數為 0 時停止;然後由第一次取得的整數開始,依序由左向右排列, 即可完成小數部分的轉換。

  35. 十進位轉換成八進位 • 最後將整數部份加上小數部份:127 + 0.3 = 127.3 。所以 (87.375)10 = (127.3)8

  36. 5-2-4 十六進位與十進位間的轉換 • 十六進位轉換成十進位 • 十進位轉換成十六進位 • 與十進位互轉的通則

  37. 十六進位轉換成十進位 • 十六進位的轉換原理和二進位相同, 其十六進位整數部份, 在小數點左邊第一位的位值為 160、第二位的位值為 161 ...;而小數部份, 在小數點右邊第一位的位值為 16-1、第二位的位值為 16-2 ...。因此十六進位轉換成十進位, 只要將每一個十六進位數乘以該數的位值, 然後相加即可求得。在此我們以 (BCE.1E)16轉換成十進位來 做示範:

  38. 十進位轉換成十六進位 • 十進位轉成十六進位的方式, 亦分為整數與小數兩部份來處理。在此以(43969.71875)10轉成十六進位來做示範。 • 整數部份 • 採連續除以 16 , 並保留 「餘數」 , 直到除法運算後的商數為 0 時停止;然後由最後一次產生的餘數開始, 依序由左向右排列, 即可完成整數部分的轉換。

  39. 十進位轉換成十六進位

  40. 十進位轉換成十六進位 • 小數部份 • 將小數部份乘以 16 , 保留所得乘積的 「整數部分」 , 繼續將乘法運算後所得的小數部分乘以 16 , 直到所得的小數為 0 時停止;然後由第一次取得的整數開始, 依序由左向右排列, 即可完成小數部分的轉換。

  41. 十進位轉換成十六進位 • 最後將整數部份加上小數部份:ABC1+ 0.B8 = ABC1.B8 。所以 (43969.71875)10 = (ABC1.B8)16

  42. 與十進位互轉的通則 • 十進位轉成 r 進位的原則:整數部份除以 r , 由下往上取餘數;小數部份乘以 r , 然後由上往下取整數。 • r 進位轉成十進位的原則:將每個位數乘以對應位值後, 全部相加即可。

  43. 5-2- 5 八進位與二進位間的轉換 • 二進位與八進位互相轉換時, 請以3 個 1 組為單位來轉換會較為方便。表5-2 為八進位數與等值的二進位數之對照表。

  44. 八進位與二進位間的轉換 • 二進位轉換成八進位 • 八進位轉換成二進位

  45. 二進位轉換成八進位 • 欲將二進位轉換成八進位, 只要將二進位的整數部份由右至左, 每 3 個分成 1組, 不足 3 個即往前補 0;小數部份則由左至右每 3 個分成 1 組, 不足往後補 0 , 然後再對照上表, 將其轉換成對應的八進位數即可。在此我們以 (11100001110.101)2轉換成八進位來做示範:

  46. 八進位轉換成二進位 • 同理, 當八進位要轉換成二進位時, 只要將八進位的數值轉換成每 3 個 1 組的二進位數值即可。在此我們以 (3416.5)8轉換成二進位為例來做示範:

  47. 5-2- 6 十六進位與二進位間的轉換 • 二進位與十六進位轉換時,採每 4 個 1 組為單位來轉換會較為方便。右表為十六進位與等值的二進位數對照表。

  48. 十六進位與二進位間的轉換 • 二進位轉換成十六進位 • 十六進位轉換成二進位

  49. 二進位轉換成十六進位 • 欲將二進位轉換成十六進位, 只要將二進位數的整數部份, 由右往左每 4 個1 組進行轉換, 不到 4 個時, 就在前端補 0;小數部份則是由左往右每 4 個 1 組進行轉換, 不到 4 個時, 就在後面補 0 , 然後再對照上表, 將其轉換成對應的十六進位數即可。在此我們以 (1011111001.0011101)2 轉換成十六進位來做示範:

  50. 十六進位轉換成二進位 • 同理, 當十六進位要轉換成二進位時, 只要將十六進位的數值轉換成每 4 個1 組的二進位數值即可。在此我們以 (2F9.3A)16 轉換成二進位為例來做示範:

More Related