1 / 73

計算機概論 1001 課後輔導教材 單元 2 : 數字系統及數位邏輯

計算機概論 1001 課後輔導教材 單元 2 : 數字系統及數位邏輯. 主講老師:徐培倫. 單元 2. 數字系統及數位邏輯. 數字系統 數字系統的轉換 數字表示法 數位邏輯 邏輯閘 課後習題. 常見的數字系統. 十進位數字系統 :十進位是一套 以 10 為基數 , 逢 10 即進位 的數字系統 , 由 0 、 1 、 2 、 3 、 4 、 5 、 6 、 7 、 8 、 9 等十個數元所組成 , 這套數字系統是目前人類世界中最被廣泛採用的一套系統。

raleigh
Download Presentation

計算機概論 1001 課後輔導教材 單元 2 : 數字系統及數位邏輯

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. 計算機概論1001課後輔導教材單元2 :數字系統及數位邏輯 主講老師:徐培倫

  2. 單元2 數字系統及數位邏輯 • 數字系統 • 數字系統的轉換 • 數字表示法 • 數位邏輯 • 邏輯閘 • 課後習題

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

  4. 常見的數字系統 • 八進位數字系統:八進位是一套以 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。 • 下表將十進位數字 0 到 15 分別以二、八與十六進位來表示:

  5. 常見的數字系統

  6. 常見的數字系統 • 一般二進位數值我們都會加個小括弧並標註 『2』 , 例如:(101101)2; 而十六進位則標註 『16』 , 例如 (ACD8)16 , 依此類推。

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

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

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

  10. 轉換數字系統時的基本觀念 • 在以上的多項式中, K 就是所謂的『基底 (Base, 又稱為 Radix)』。換言之, 平常所謂的十進位, 就代表基底為 10;二進位代表基底為 2。而在不同的數字系統之間轉換, 便是『基底轉換 (Base Conversion)』。 • 後續各小節會說明基底轉換的各種方式與技巧, 有些可直接用心算、有的必須用筆算才能算出答案。無論如何, 它們的基本原理都是以上述的多項式所發展出來的。所以當我們忘了某些方式或技巧時, 只要先將數字以上述的多項式來表示, 就能在任何數字系統之間互相轉換。

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

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

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

  14. 十進位轉換成二進位

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

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

  17. 數字表示法 • 到目前為止, 我們所討論的數字都是正數。至於負數, 該如何表示呢?對人而言, 負數就是在正數的前面加上『-』符號即可;但是對電腦而言, 並無眼睛可辨識正負符號。因此, 我們必須制定一套讓電腦能夠辨識負數的表示法,常見的表示法有以下三種: • 最高位元 (Signed Magnitude) 表示法 • 1 的補數 (1's Complement) 表示法 • 2 的補數 (2's Complement) 表示法 • 為了便於說明, 以下我們一律用 8 位元的整數作為範例。

  18. 最高位元表示法 • 最高位元表示法又稱為『附加符號表示法』, 也有人譯為『帶符號大小表示法』。其原理是利用最高位元 (MSB, Most Significant Bit) 代表正或負, 其餘位元表示數值。MSB = 0 代表正數;MSB = 1 代表負數, 因此該 MSB 又稱為符號位元 (Sign Bit), 如下圖:

  19. 最高位元表示法 • 因此, 以8 位元的整數為例, 其可表示的正負數如下表所示:

  20. 最高位元表示法 • 最高位元表示法有個缺點, 就是有 2 個寫法都代表 0 (00000000 與10000000), 使得原來總共可以表示 256 個數字, 變成只能表示 255 個。

  21. 1 的補數表示法 • 使用 1 的補數(1's Complement) 表示法時, 一個數的負數即是將該數的每一位元數值 0、1 互換 (即 1 變 0, 0 變 1)。如下表:

  22. 1 的補數表示法 • 1 的補數表示法與最高位元表示法有同樣的缺點, 也有 2 個 0 (00000000與 11111111), 因此在實際上, 並無法被電腦所採用。在電腦裡, 實際被使用的是 2 的補數表示法。

  23. 2 的補數表示法 • 在 2 的補數(2's Complement) 表示法裡, 一個數的負數即是其 1 的補數值再加 1, 如下表示:

  24. 2 的補數表示法 • 由上表可知, 只有在 0 時, 該數 1 的補數值加 1, 才會使得最高位元進位, 此時該進位的位元捨棄, 使得該數 ( 0 ) 的正負數表示法相同;因此以 2 的補數法來表示負數, 就不會有 「兩種方式表示 0」 的困擾了。結果正數由 1 ~ 127 總共有 127 個;負數由 -1 ~ -128;再加上 1 個 0 , 所以 8 個位元總共可以表示 256個數。

  25. 浮點數的表示法 • 在電腦中, 當用到含有小數的數字 (如 3.14);或是整數的值 (如 10 的 20次方) 超過整數表示法所有位元所能表現的最大值時, 這時就需要使用一種特別的表示方法, 稱之為浮點數(Floating Point) 表示法。

  26. 正規化 • 在正式介紹浮點數表示法之前, 我們先大致說明正規化(Normalization):當我們要將一個數字以浮點數表示法表示時, 需要先將其正規化。所謂的正規化, 是將該數字轉換成二進位的 1.xxxxxx × 2 指數 的形式。

  27. 正規化 • 例如要計算 (12.25)10經正規化的結果, 需先將其轉換為二進位 (12.25)10 =(1100.01)2 , 再正規化成 1.10001 × 23。此時, 1.10001 × 23可解讀出以下資訊, 這些資訊將在轉換成浮點數表示法時用到: • 此數值為正數。 • 指數為 3。 • 小數部分為 10001 。

  28. 浮點數表示法 • 浮點數表示方法相較於前二節所介紹的正負整數表示法, 最主要的差別就在於小數點的位置。之前所介紹儲存正負整數的方法, 小數點都固定在最右邊,所以其又稱為定點表示法。 • 不同 CPU 雖有其各自的浮點數表示法, 但一般較常採用 IEEE 協會所訂定的浮點數表示法標準( IEEE Standa rd 754) , 其分成單精確度(Si n g l e Precision) 及雙精確度(Double Precision) 二種。兩者的差別在於單精確度是以 32 個位元來表示浮點數, 雙精確度則是用 64 位元表示。以下我們以單精確度為例來說明:

  29. 浮點數表示法 • 正/ 負符號:表示這個數字是正數還是負數, 用 0 表示正數, 1 表示負數。

  30. 浮點數表示法 • 偏差指數:表示這個數字的指數部分。8 個位元可表示數值 0 ~ 255 。由於要表示的數字可能很大, 也可能很小, 因此其指數部分可能為正或負。為了要能顯示正負兩種指數, 因此以 127 為指數偏差值。將數字的指數值加上指數偏差值127, 即可算出要儲存的偏差指數。例如某數的指數為 -3, 則會以 127+(-3)=124 儲存。 • 因此單精確度的表示法, 能表示指數的範圍為 -127 ~ 128 。

  31. 浮點數表示法 • 小數部份:表示這個數字的小數部分。這裡的小數部份是指以二進位形式,且正規化後的小數部份。 • 在此依舊以 (12.25)10為例, 看看如何以單精確度的浮點數表示法來表示。 • 首先, 它是個正數, 所以第一個位元已經確定是 0。 • 接著將其正規化成 1.10001 × 23, 此時便可計算出偏差指數為 3 + 127 =130, 再把 130 轉換為長度為 8 位元的二進位 (10000010)2 , 於是可以得到偏差指數的部份就是 10000010 。

  32. 浮點數表示法 • 最後是小數部份, 小數部份即是正規化後二進位的小數部份, 至於小數點前面那個 1, 則因為所有正規化的數字都有, 所以不用記錄, 只要顯示後面的小數部份 10001, 但小數共有 23 個位元, 所以要把後面的位元補上 0。最後得到的浮點數表示如下:

  33. 浮點數表示法 • 浮點數表示法雖然以相當多的位元來表示, 但對於一些數值, 若正規化後無法以有限位元來表示小數部分 (例如 0.3 經正規化後, 其小數部分會成為循環), 則其以浮點數表示法表示時, 只能得到近似值。

  34. 文字的表示法 • 電腦不但可以幫我們做快速精確的數值運算, 還可以做文字資料的處理。要處理文字資料, 就必須先瞭解文字資料在電腦中的表示方法。 • 數值資料在電腦內部是以「二進位」的形式來表示, 這是因為電腦只能處理二進位形式的資料;同樣地, 我們輸入電腦的文字資料, 亦會被轉換成二進位碼的形式儲存。這種將文字資料轉換成二進位碼的系統就稱為編碼系統。以英文字母為例, 我們可以建一個編碼表。

  35. 文字的表示法

  36. 文字的表示法 • 我們把每一個英文字母編上一個號碼, 建成一套編碼表。這個編碼表可以存放在鍵盤內的電路上。當我們按下一個鍵時, 鍵盤的電路便依表格的規定, 把該鍵對應的二進位碼送往電腦主機 (例如按下 鍵, 鍵盤便會把其相對應碼65 的二進位數 01000001 傳到主機)。同樣地, 當我們想將文字資料輸出時, 編碼系統亦會將二進位碼轉換成對應的字元符號, 再藉由輸出設備顯示或列印出來。 • 電腦是以數字碼來表示文字資料, 例如 65 代表 "A", 66 代表 "B"。像這種以數值代表字元的方式稱為編碼, 不同的系統可能會使用不同的編碼方式。

  37. 常用的英文電腦編碼系統 • 目前在 PC 上常用的英文編碼系統有 3 種, 分別是:ASCII 碼、ISO8859 碼和 EBCDIC 碼。 • ASCII 碼:是美國標準資訊交換碼 (American Standard Code for Information Interchange) 的縮寫;它不但包含英文大、小寫字母, 還有阿拉伯數字、控制字元以及各種符號等。ASCII 碼是以 7 個位元來表示, 因此共有128 個 ASCII 碼, 每一個碼都對應一個字元, 在電腦中是以 1 個位元組來儲存。其數值與字元的對應表如下:

  38. 常用的英文電腦編碼系統

  39. 常用的英文電腦編碼系統 • 由於 1 個位元組 (8 個位元) 可以表示出 28 = 256 種資料, 因此在 PC 上又將 ASCII碼擴充, 多了 128 個擴充符號字元 (號碼為 128 ~ 255), 可用來繪製表格的格線, 或印出特殊的字母、符號等。

  40. 常用的英文電腦編碼系統 • ISO8859 碼:由於歐洲地區語系的文字除了 26 個英文字母(也就是拉丁字母)外, 還包含了拉丁字母的變形(例如上下標)與其他字母(例如希臘字母)等。有鑑於此, ISO 國際標準化組織便將編碼系統由 7 個位元擴充到 8 個位元, 其中 0 到 127 的編碼與 ASCII 碼相容, 128 到 255 碼則依地區不同, 包含更多的特殊字元。ISO8859 的編碼系統又依地區語系的不同, 區分成幾個部分, 例如丹麥和芬蘭等語系使用 ISO8859-1 編碼系統, 而羅馬尼亞和波蘭等語系則採用 ISO8859-2 編碼系統。

  41. 常用的英文電腦編碼系統 • EBCDIC 碼:EBCDIC 碼的全名是 Extended Binary Code Decimal Interchange Code, 是美國 IBM 公司所制定的編碼系統, 主要使用在 IBM 一部份大型主機上。EBCDIC 碼的每一個字元是由 8 個位元所組成, 共有 28種組合, 可以表示 256 個字元。

  42. 常用的中文電腦編碼系統 • 在電腦中, 8 個位元 (28 = 256) 就足以表示所有的英文字母、阿拉伯數字及許多特殊符號;但是, 8 個位元卻不足以表示所有的中文字, 因此中文字是以 2 個位元組 (16 個位元) 來編碼。由於這些碼都是中文字儲存在電腦內部時的編碼, 所以又稱為中文的內碼。 • 以下就針對目前比較常使用的編碼系統做介紹: • Big5 碼:由資策會工業局聯合 13 家業者於 1984 年所共同制定的編碼系統, 包含了 5401個常用字、7652 個次常用字及 408 個符號 (含標點符號、注音符號、單位符號……), 共 13461 個字。

  43. 常用的中文電腦編碼系統

  44. 常用的中文電腦編碼系統 • Big5 碼雖然已收錄了 13461 個字, 但仍缺少一些罕見字, 例如大家在看網頁時, 有時會發現游錫 的 字,以及王建 的 字無法顯示, 這都是因為 Big5碼沒有這 2 個字所致。

  45. 常用的中文電腦編碼系統 • 由於 Big5 碼並沒有用完 2 個位元組所能顯示的字數, 仍有許多內碼未被使用, 因此便有些單位以其為基礎, 發展出衍生的 Big5 編碼, 例如早期倚天中文系統使用的 Big5_Eten 等。

  46. 常用的中文電腦編碼系統 • CP950 碼:CP950 (CodePage 950) 碼也稱為 MS950 碼, 由微軟公司所發展, 從 Big5 碼擴充而來的, 其應用於微軟的 Windows 作業系統中。原本 Windows 作業系統內部是採用 Unicode 編碼方式 (稍後會介紹), 但為了配合多國語言使用, 系統會根據使用者的國籍設定, 在輸出、輸入和顯示時, 搭配以不同的 CP*** 編碼方式呈現, CP950 便是代表繁體中文的編碼方式, 如果是泰文就會轉以 CP874 的編碼呈現。

  47. 常用的中文電腦編碼系統 • CNS11643:由於 Big5 碼字數不足, 因此國內許多政府機關為了符合其需要, 都建立了自己的編碼系統, 像是財稅資料中心的財稅碼、戶政的 EUC(Extend Unix Code) 碼等。但各單位編碼系統不同, 造成文件交換的困難,因而政府在 1986 年制定了 CNS11643 通用漢字標準交換碼, 提供國內資訊系統中文交換與處理上的標準依據, 1992 年更名為國家標準中文交換碼。經過歷年的擴充, 目前 CNS11643 已包含約 11 萬字, 詳細資訊可參考官方網站 http://www.cns11643.gov.tw 。

  48. 全球統一的編碼系統 • 現在全世界有許多語言在被使用, 甚至有些語言還會有多種編碼系統 (例如繁體中文就有 Big5、CP950…), 使得全世界有相當多種編碼系統。這也衍生出一個問題:當使用不同編碼的電腦要交換資料時, 由於沒有共用的編碼系統, 以致無法解讀彼此的文字。 • 例如我們平時在瀏覽網頁或收信時, 有時就會發現網頁或信的內容全部是亂碼, 其原因可能就是當初撰寫這些網頁、信件時所採用的編碼系統, 跟我們解讀時所使用的編碼系統不同, 以致無法 "溝通" 所致:

  49. 全球統一的編碼系統

  50. 全球統一的編碼系統 • 為了解決這樣的問題, 於是出現了 Unicode 碼 (統一碼、標準萬國碼)。它是由 Unicode 協會及 ISO 國際標準化組織針對各國文字、符號制定的統一性編碼系統, 將全球語言編在一起, 而達成統一編碼的目的。

More Related