---
# System prepended metadata

title: 數系 ： Chapter 1
tags: [Digital system]

---

# 數系 ： 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的補數時，較麻煩。