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

Download Report

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

數字系統與資料表示法







電腦的基本單位
數字系統
數值資料表示法
數值資料與算數運算
數碼系統
浮點數表示法
文字表示法
資料來源:周裕達教授
1
§電腦的基本單位
位元(Bit)
電腦中最小的的儲存單位叫做位元, 一個位元
有 0 與 1 兩種狀態。
二進位系統(binary system)
開:1
1
0
0
1
0
資料來源:周裕達教授
1
1
關:0
0
2
位元組(Byte):8 bits
字組(Word):2 Bytes
1 byte
= 8 bits
1 KB
=210 bytes
1 MB
=220 bytes
1 GB
=230 bytes
1 TB
= 240 bytes
資料來源:周裕達教授
3
§數字系統
數字系統(Number System)
是計算與數之命名的方法。
常見數字系統
十進位系統(decimal)
六十進位系統
二進位系統(binary)
八進位系統(octal)
十六進位系統(hexadecimal)
資料來源:周裕達教授
4
數字系統的表示
數元(digit)的個數,即決定了何種數字系統。
 K 進位數字系統,即以 K 為基底的數字系統,其數元
共有 K 個,即0, 1, 2, ..., K-1。
十進位數字系統是一套以十為基底的數字系統。
以 K 為基底的數字 N,通常寫成
Nk = (Ap-1Ap-2….A1A0.A-1A-2….A-q)k
MSD
資料來源:周裕達教授
LSD
5
資料來源:周裕達教授
6
資料來源:周裕達教授
7
例題
基底為10
123410 =1 103 +2102+3101+4 。
基底為2
010000012 =1 26 +120 =6510
10進位→2進位
7410 =(?)2
LSB
74
2 37
2 18
2 9
2 4
2 2
1
MSB
8 Bits
2
0
1
0
1
0
0
資料來源:周裕達教授
01001010
8
資料來源:周裕達教授
9
資料來源:周裕達教授
10
資料來源:周裕達教授
11
資料來源:周裕達教授
12
資料來源:周裕達教授
13
§數值資料表示法
帶符號大小
MSD 當成符號位元:0→正數, 1→負數。
n 位元可表示範圍: -(2n-1-1 )~-0 →0~ (2n-1-1 )。
不易用邏輯電路製做加減法器。故這種表示法
不被電腦採用。
1’s 補數
正數:與帶符號表示法一樣。
負數:將正數結果之0→1, 1→0。
2’s 補數
 1’s 補數+1。
資料來源:周裕達教授
14
補數表示法。
1’ 補數及2’補數。
N位元數字系統:2N 種組合。
此段當成
負數
0
2N-1
一的補數
二的補數
-(2N-1-1)
-2N-1
資料來源:周裕達教授
2N-1
-0
-1
15
三種表示法所能表示之範圍
資料來源:周裕達教授
16
4 位元之三種表示法
帶符號
0111
0110
0101
0100
0011
0010
0001
0000
1000
1001
1010
1011
1100
1101
1110
1111
十進制
7
6
5
4
3
2
1
0
-0
-1
-2
-3
-4
-5
-6
-7
四位元帶符號
一補數
0111
0110
0101
0100
0011
0010
0001
0000
1111
1110
1101
1100
1011
1010
1001
1000
十進制
7
6
5
4
3
2
1
0
-0
-1
-2
-3
-4
-5
-6
-7
四位元一的補數
資料來源:周裕達教授
二補數
0111
0110
0101
0100
0011
0010
0001
0000
1111
1110
1101
1100
1011
1010
1001
1000
十進制
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
四位元二的補數
17
§數值資料算數運算
加法
111 1
+
001110102→(58)10
000110112→(27)10
010101012→(85)10
溢位(overflow)
兩數相加或相減之後結果→超出位元系統所
能表示範圍。
127+1→100000002(-128)
正負符號位元出現異常:正數相加→負數;
負數相加→正數;一正數減去負數→負數;一
負數減去一正數→正數。
資料來源:周裕達教授
18
減法
利用補數觀念來完成。
A-B 等於 A + (B 的K’s 補數)。
1110102-111001012=?
+
001110102→(58)10
000110112→(27)10
010101012→(85)10
計算結果位數超過系統可表示位元→超
過部分省略。
資料來源:周裕達教授
19
乘法
例題
 11012×10112=?
11012→(13)10
× 10112→(11)10
1101
1101
0000
1101
10001112→(143)10
資料來源:周裕達教授
20
除法
例題
1001
 111010012÷10012=?
11001
11101001
1001
商數
1011
1001
10001
1001
1000
餘數
資料來源:周裕達教授
21
§數碼系統
BCD 碼
2421碼
84-2-1碼
超三碼
二五碼
五取二碼
葛雷碼
條碼
霍夫曼碼
資料來源:周裕達教授
22
BCD 碼
 用四個位元表示一個阿拉伯數字。
 4個位元由左到右,其權重(Weights)都不相同,
分別是8,4,2,1。
 BCD碼又被稱為8421碼
資料來源:周裕達教授
23
2421 碼
 用四個位元表示一個阿拉伯數字。
 4個位元由左到右,其權重(Weights)分別是2,4,
2,1→此編碼不是唯一。
 十進位系統的9補數正好等於二進位系統的1補數,
所有具有這種特性的碼被稱為自補碼(SelfComplementing Code)
資料來源:周裕達教授
24
84-2-1 碼
 用四個位元表示一個阿拉伯數字。
 4個位元由左到右,其權重(Weights)分別是8,4,
-2,-1。
 84-2-1碼也是一個自補碼。
資料來源:周裕達教授
25
超三 碼(Excess-3 Code)
 先用四個位元表示0~9數字。
 將上述二進位結果加3。
 超三碼也是一個自補碼。
資料來源:周裕達教授
26
資料來源:周裕達教授
27
二五 碼
 使用七個位元表示0~9數
字。
 7個位元由左到右,其權
重(Weights)分別是5,0,
4,3,2 ,1 , 0。
 前兩位元及後五位元一定
要有一個位元為1。
資料來源:周裕達教授
十進制碼
二五碼
5043210
0
0100001
1
0100010
2
0100100
3
0101000
4
0110000
5
1000001
6
1000010
7
1000100
8
1001000
9
1010000
28
五取二碼
 使用五個位元表示0~9數
字。
 5個位元一定要有兩個位
元為 1,三個位元為 0。
資料來源:周裕達教授
十進制碼
五取二碼
0
00011
1
00101
2
00110
3
01001
4
01010
5
01100
6
10001
7
10010
8
10100
9
11000
29
葛雷碼(Gray Code)
 任何連續的兩個二進位表示法,只有一個位元不
相同;其餘相同。
 用二個位元來表示整數0,1,2,3,
方法一:
即G1=﹛0=00,1=01,2=11,3=10﹜
 方法二:
即 G2=﹛00=10,1=11,2=01,3=00﹜。
 學者研究出一種二進碼,稱為反射葛雷碼
(Reflected Gray code),其編碼方式唯一而且有
系統,故廣泛應用在計算機領域。
資料來源:周裕達教授
30
葛雷碼(Gray Code)(續)
 以遞回方式產生唯一反射碼
Gn+1={0Gn, 1Gnref},G1={0,1},n>=1。
資料來源:周裕達教授
31
葛雷碼(Gray Code)(續)
 由十進位→葛雷碼
資料來源:周裕達教授
32
葛雷碼(Gray Code)(續)
 由葛雷碼→十進位
資料來源:周裕達教授
33
表2-2.1 十進位制與其他不同碼之對照表
十進制碼
BCD
(8421)
超值-3碼
8,4,-2,-1
葛雷碼
二五碼
5043210
0
0000
0011
0000
0000
0100001
1
0001
0100
0001
0001
0100010
2
0010
0101
0011
0011
0100100
3
0011
0110
0010
0010
0101000
4
0100
0111
0110
0110
0110000
5
0101
1000
0111
0111
1000001
6
0110
1001
0101
0101
1000010
7
0111
1010
0100
0100
1000100
8
1000
1011
1100
1100
1001000
9
1001
1100
1101
1101
1010000
資料來源:周裕達教授
34
條碼(Bar Code)
 利用粗細不同的線條表示0~9數字,透過光學儀
器很快地掃瞄並認得商品所附之條碼所代表的
數字。
 特性
不易塗改。
不受列印品質與大小的影響。
 不受方向性不同的影響。
資料來源:周裕達教授
35
霍夫曼碼(Huffman Code)
 不固定長度的編碼方式,符號編碼長度與出現頻
率成反比。
 編碼步驟
找出所有符號出現頻率。
將頻率最低的兩者相加得出另一個頻率。
重覆以上第二步驟,將最低兩個頻率相加,直到只剩下
一個頻率為止。
根據合併關係分配0與1,而形成一棵編碼樹。
資料來源:周裕達教授
36
霍夫曼碼(續)
 實例─編碼
1
假設編碼系統有A, B,C, D, E,
F 等六個符號,期出現頻率依
序為0.2, 0.15, 0.3, 0.18, 0.05,
0
0.12,試設計霍夫曼碼?
D
0.18
編碼結果
0
1
0.38
0.62
A
0.20
0
1
C
0.30
0.32
0
1
B
0.15
 A: 01; B:110; C:10
0.17
1
0
D:00; E:1110;F:1111
總共所需位元:17 bits。
資料來源:周裕達教授
E
0.05
F
0.12
37
霍夫曼碼(續)
 實例─解碼
1
請依照上一題所設計霍
夫曼碼,將
111110010000110 進行解碼?
解碼結果
0
1
0.38
0.62
0
D
0.18
A
0.20
0
1
C
0.30
0.32
0
 FCADDB
1
B
0.15
0.17
1
0
E
0.05
資料來源:周裕達教授
F
0.12
38
§浮點數表示法
表示實數資料
單倍精確浮點數:32 位元。
雙倍精確浮點數:64 位元。
延伸精確浮點數:80 位元。
表示法
b31
b30 b29………..b23
b22 b21………..b0
1 位元
8 位元
23 位元
正負符號
偏移指數
小數部分
資料來源:周裕達教授
39
說明
正/負符號
b31=0表示此實數為正數﹔b31=1表示此實數為負數。
偏差指數
 8位元表示的非負整數值為0~255。
實數可由很小至很大﹐故需要正﹑負二種指數﹐因此以
127為指數偏差值﹐實際的指數值=偏差指數-127。
偏差指數的範圍為127 ~ 255﹐則代表真正指數值為0 ~ 128。
偏差指數介於126 ~ 0之間﹐則代表真正指數值介於-1 ~ -127之間。
偏差指數是132﹐其真正指數則為5﹔偏差指數是120﹐其真正指數即是
-7。
小數部分
此處的小數部分是經過正規化(normalization)後的小數。
由於它有23位元﹐所以可準確到小數點後23位。
資料來源:周裕達教授
40
範例
資料來源:周裕達教授
41
公式
一個32位元的浮點表示法字串其所代表的真正實數可
用下列公式導出:
 (-1)S ×(1 + M) ×2(E- 指數偏差值)
 S:
正/負符號,0表示此實數為正數;1表示此實數為負數。M: 小數部分,即
b22…b0。E: 偏差指數即b30…b23,8位元的非負整數值0~255。
資料來源:周裕達教授
42
§文字表示法
文數資料
含文字(Letter)、符號(Symbol)與數字(Digit)的資料。
所有不可做算數運算的資料皆屬此類。
資料來源:周裕達教授
43
表示方法
ASCII(讀作as-kee)碼(America Standard Code for
Information Interchange,美國標準資訊交換碼)
IBM,UNIVAC等某些大型電腦採用的擴充式
二 進 位 交 換 碼 EBCDIC( 讀 作 eb-ce-dick) 碼
(Extended Binary Coded Decimal Interchange
Code)。
中文字則大多採用BIG-5碼,但也有一些系統
採用倚天碼,電信碼及IBM 5550碼等。
資料來源:周裕達教授
44
 ASCII碼
由七個位元來表示一個字元(Character) 。
 8-位元的ASCII碼,則可有
=256種不同的組合。
EBCDIC碼是由 8 位元來表示一個字元。
 EBCDIC碼將位元分成兩組各 4 個位元,其中一組叫區
位元(Zone bits),另一組叫數元位元(Digit bits)。
區位元用以說明此字元是字母、無正負號的數字、正負
符號及一些特殊符號。而數元位元用來表示阿拉伯數字
0~9。
中文碼用的是另一套表示法,它和ASCII碼及
EBCDIC碼不同。中文碼是以2個位元組(16個位元)
來表示的 。
資料來源:周裕達教授
45
7 位元 ASCII 表
資料來源:周裕達教授
46
資料來源:周裕達教授
47
資料來源:周裕達教授
48
統一碼(Unicode)
為應付日益增多的字元,例如中文及日文等其它有別
於英文的語言,目前國際標準協會正致力於 16 位元
的字元碼(Character code),稱作統一碼)以作為
世界標準。
資料來源:周裕達教授
49