# 數系 : Chapter 1 ###### tags: `Digital system` ## 一 . 數位和類比 ### (一) : 定義 1. 類比 : 連續(continous)的訊號,大自然中的波,多以此形式傳播。 2. 數位 : 不連續(discrete)的訊號,電腦裡的波,多用這種形態傳遞。 ### (二) : 應用 1. 類比轉數位 : - 因大自然中的訊號皆為類比訊號,是連續的數據內容。 - 但電腦因為記憶體的限制,無法存取連續的訊號。 - 所以,類比轉數位是在電腦處理類比訊號的第一步。 2. 數位信號的表達: - 二進位 : 0和1。 - 離散數學 : false和true。 - 電壓 : high和low。 ### (三) : 失真的影響 1. 類比訊號失真後 : 必無法轉換回原本的。 2. 數位訊號失真後 : 可以轉成原本的。 ## 二. 進位制 ### (一) : 定義 1. Positional Notation : 分開整數、小數的分隔號。 2. Base(raddix) : 以數字多少組成的進位制度。 3. Set of representation : 一個進位制每個位可以使用的符號。 4. 常見的進位制 : - 8進位 : Oct。 - 16進位 : Hex。 - 2進位 : byte,每一個位稱為一個bit。 ### (二) : 進位制轉換 1. 任何進位制轉10進位。 3. 10進位轉任何進位 。 ## 三 . 二進位的表達 ### (一) . Binary Representation 1. 表示方式 : 同原本二進位。 2. 表示特性 : 無法表負數。 3. 表示範圍 : n個bit,可以表示 $0$ 到 $2^n-1$。 ### (二) . Signed-Magnitude Representation 1. 表示方法 : 第一個位數用來表示正負。 ``` 例 : -101 <-> 1101 例 : +101 <-> 0101 ``` 2. 表示特性 : 可以表示負數,但: - 有兩個0 : 正零和負零。 - 進行運算不易。 3. 表示範圍 : n個bit,可以表示 $-2^{n-1}$ 到 $+2^{n-1}$。 ``` --(+0)--(+1)--(+2)--(+3)--(-0)--(-1)--(-2)--(-3)-- 000 001 010 011 100 101 110 111 ``` 4. 加減法 : 十分複雜,不討論。 5. 讀取 : 可以完成的儲存值,多用來給使用者觀看,不做電腦內部運算。 ``` 十進位 Signed-Magnitude +2 <-> 010 -2 <-> 110 ``` ### (三) . 補數 - 補數的定義 :以三位數的十進位表示 ``` 補數 : n的補數,即為「全滿減去n」。 例 : 156的補數 <-> 999-156=843 例 : 769的補數 <-> 999-769=230 ``` 1. 表示方式 : 正數的負數用補數進行表示。 ``` 例:十進位的1 : 001 正數 <-> 110 負數 例:十進位的3 : 011 正數 <-> 100 負數 ``` 2. 表示特性 : - 仍有兩個0的存在。 - 加減相較容易。 3. 表示範圍 : n個bit,可以表示 $-2^{n-1}$ 到 $+2^{n-1}$。 ``` --(+0)--(+1)--(+2)--(+3)--(-3)--(-2)--(-1)--(-0)-- 000 001 010 011 100 101 110 111 ``` 4. 加減法 : **兩數直接相加,若有溢位,則捨去溢位並加一;若無,則直接為解**。 ``` 例 : 十進位之下的2-1 = 2+(-1) 010 1000 000 +) 110 --> 捨去溢位 --> +) 1 -------- 000 -------- 1000 001 ``` ``` 例 : 十進位之下的1-2 = 1+(-2) 001 110 +) 101 --> 沒有溢位 -------- 即為解 110 ``` 5. 讀取 : 轉換signed-magnitude,再由signed-magnitude轉十進位。 - situation 1 : 第一位為0,則直接轉成signed-magnitude。 - situation 2 : 第一位為1,則第一位以下取Not得『值』為signed-magnitude。 ### (四) . 二補數 - 二補數 : n進位補數的轉換後再加n-1於最後一位。 ``` 例 : 156的二補數 <-> 999-156=843+9=852 例 : 769的=補數 <-> 999-769=230+9=239 ``` 1. 表示方式 : 正數的負數用補數進行表示,但在最後一位加一。 ``` 例:十進位的1 : 001 正數 <-> 110+1=111 負數 例:十進位的3 : 011 正數 <-> 100+1=101 負數 ``` 2. 表示特性 : - 只有一個0的存在。 - 加減相較容易。 - 電腦大多使用的表示方法。 - **可以在邏輯上構成我們認知的實數線**。 3. 表示範圍 : n個bit,可以表示 $-2^{n-1}+1$ 到 $+2^{n-1}$。 ``` --(+0)--(+1)--(+2)--(+3)--(-4)--(-3)--(-2)--(-1)-- 000 001 010 011 100 101 110 111 ``` ``` --(-4)--(-3)--(-2)--(-1)--(+0)--(+1)--(+2)--(+3)-- 100 101 110 111 000 001 010 011 ``` 4. 加減法 : **兩數直接相加,若有溢位,則捨去溢位;若無,則直接為解**。 ``` 例 : 十進位之下的2-1 = 2+(-1) 010 1001 001 +) 111 --> 捨去溢位 --> 就是解 -------- 001 1001 ``` ``` 例 : 十進位之下的1-2 = 1+(-2) 001 111 +) 110 --> 沒有溢位 -------- 即為解 111 ``` 5. 讀取 : 轉換signed-magnitude以供使用者查看。 - situation 1 : 第一位為0,則直接轉成signed-magnitude。 - situation 2 : 第一位為1,則第一位以下取Not得值為signed-magnitude。 ## 四 . 編碼系統 ### (一) . Binary Code 1. Binary Code的定義 : 用2進位的一組word組成十進位。 - 用n個bit就可以組成$2^n$種不同的組合。 - 常見的電腦用4bit組成一個word就是為了表示十進位的一個位。 2. 常見的Binary Code : - BCD,又稱8421。 - 2421。 - Excess-3。 - 84-21。 ### (二) . BCD編碼 1. 定義 : 8421代表每個權重,用此表示10進位,注意,每4bit最多表示到10。 2. 表示方式 :每4bit表示一個十進位,以十進位185舉例。 ``` 十進位 : 185 -> (0001 1000 0011) : BCD編碼 ---- ---- ----- 十進位:百位 十位 個位 ``` 3. 優缺點 : - 優點 : 可以成功地存放十進位,較易讀懂。 - 缺點 : 會消耗很多空間。 4. 加減法 : 直接加,若大於$(1010)即10$或$(1000)即16$則加上$(0110)即6$。 ### (三) . 其他編碼系統 1. 類似BCD的 : 2421、84-21 ,皆用BCD的方式表示,但其權重不一樣而已。 2. BCD的缺點 : 取9的補數時,較麻煩。