2-5數字系統與資料表示法

Download Report

Transcript 2-5數字系統與資料表示法

2-5 數字系統與資料表示法
-1 進制的定義與特性
-6 中文文字資料
-2 數字系統轉換(10 進位⇔任何進位)
-7 全世界各大語系的文字資料
-3 數字系統轉換(2、8、16 進位互換)
-8 同位元檢查(Parity Check)
-4 數字系統計算
-9 整數
-5 資料表示法
-10整數表示法的轉換
2-5 數字系統與資料表示法
一、進制的定義與特性
 以十進位為例 1.使用0 ~ 9,共10個符號
2.基底:10
3.逢十 補 “0”,進一位 (變二位數)
n4 n3 n2 n1 n0
n-1 n-2 n-3
( ……. □ □ □ □ □ . □ □ □)
例如 592.110 = 500
+ 20 + 90
9 ++0.5 2
+ 0.1
2-5 數字系統與資料表示法
 進制的定義與特性
n 進制(數字系統)
1.基底 : n
2.可使用符號:0, 1, 2…., n-1 ( 共 n 個符號 )
3.各位數之值 : 逢 n ,補 “0” 進一位
4.每個數字依其所在位置, 有不一樣的位值
5.表示法: 例如 98765.4321 10 或 10111.10012
n4 n3 n2 n1 n0
n-1 n-2 n-3
( ……. □ □ □ □ □ . □ □ □)
100 + 20
+ 20+ 9+ + 0.5
9 + 0.5
例如 129.510 = 100
=1×102 +2×101 + 9×100 +5×10-1
2-5 數字系統與資料表示法
 常用的數字系統
2 進位
8 進位
10 進位
16 進位
2-5 數字系統與資料表示法
一、常用的數字系統
1. 二進位制:電腦內部以二進位的形式來儲存及處理資料。
2. 十進位制:人類慣用的數制
通常省略基底不寫
3. 八進位制與十六進位制:為方便人檢視電腦內部二進位資料
通常是寫程式時用
2-5 數字系統與資料表示法
 數字系統轉換
– 數字本身所代表的”實際值”不因轉換而改變
• 例:貓熊”圓仔”體重為 6 公斤
• 公斤:6
• 台斤:10
度量單位不同, 但”圓仔”的體重不變
– 例: “15”在不同系統內的表示值:
• 二進位: 11112
• 八進位 :178
• 十進位:1510
• 十六進位 : F16
2-5 數字系統與資料表示法
 數字系統轉換
– 電腦儲存的最小單位:位元
• 只有 0 或 1
– 電腦資料處理:
– 如:01001101…
– 資料都必須先轉換成二進制,再存到電腦記憶體中
輸入資料(如10 進位)
螢幕輸出
轉換成2進位
轉換成10 進位
儲存於記憶體
處理資料
儲存於記憶體
例.如電腦要儲存56時,因56 = (111000)2,電腦內部會以 0000000000111000
的方式表示。
故要學 “數字系統轉換 “
2-5 數字系統與資料表示法
1.下列何者是錯誤的表示法?(A) (318.4)9 (B) (11001.111)2
(C) (CDC.DEC)16 (D) (525.3)5。
答 : (A) 對
∴ (D) 錯
(B) 對
(C) 對
(D) 5進位, 没有符號 5
2.判斷下列數字系統的資料表示對或錯?(A) (2266)4
(B) (NBA)16
(C) VB 中的&119 (D) 1000 是指(1000)2
(E) (1,234)10。
答:
(A) 4進位沒有符號 6
(B) 16進位沒有 N
(D) 10進位1000與2進位1000,值不同
(C) &119, &是8進位,沒有 9
(E) (1,234)10, 不可有千位符號 ,
2-5 數字系統與資料表示法
2、任何進位→10 進位
 公式一 : 任何基底轉10 進制→ 與其乘冪相乘後再加起來
2 1 0 -1
例如 129.510 = 100 + 20
+
9
+ 0.5
= 1 ×102 +2×101 + 9×100 +5×10-1
3 2 1 0
-1 -2
( 1011.01)2 = 123 +121 +120 +12-2
= 8
+ 2
= 11.25
+ 1
+ 0.25
2-5 數字系統與資料表示法
2、任何進位→10 進位
2 1 0
-1 -2
2
1
0
-1
-2
( 123.46)8 = 18 +28 +38 +48 +68
= 64 + 16 + 3 + 0.5 + 0.09375
= 83.59375
2
1
0
-1
13F.C16=(
)10
= 1×162
+ 3×161
+ 15×160
+ 12×16-1
= 256
+ 48
+ 15
+ 0.75
= 319.7510
2-5 數字系統與資料表示法
例. 若 (110 )X = (56)10,試問 X 之值為何?
答:
2 1 0
(1 1 0 )X = (56)10
1 × X2 + 1× X1 + 0 × X0 = 56
X2 + X1 - 56 = 0
( X + 8 ) (X - 7) = 0
∴ X = 7 或 -8 (不合)
∴ X=7
2-5 數字系統與資料表示法
3、10 進位→任何進位
整數→短 除基底→ 取餘數→由下往上
小數→ 乘以基底→ 取整數→由上往下
(115.375)10 = ( 1110011. 011 )2
2 115
2 57
2 28
2 14
2 7
2 3
1
....1
....1
....0
....0
....1
....1
由
下
往
上
取
0.375
×
2
0.750
× 2
1 .50
× 2
1 .0
由
上
往
下
取
2-5 數字系統與資料表示法
3、10 進位→任何進位
×
16
1
6
16
1 50
25
4.0 0
2-5 數字系統與資料表示法
3、10 進位→任何進位
164.687510 = ( 244.54 ) 8
8 164
0.6875
×
8
8 164
8 20 . . . . 4
2 ....4
由
下
往
上
取
0.6875
×
8
5.5000
× 8
4 .0
由
上
往
下
取
2-5 數字系統與資料表示法
3、10 進位→任何進位
1. 請將 (123)8 轉換成 5 進位 (
答:
) 5?
2 1 0
(123)8 = ( 313 )5
1 × 82 + 2× 81 + 3 × 80 = 83
5
5
83
16 . . . . 3
3 ....1
由
下
往
上
取
2-5 數字系統與資料表示法
 數字系統轉換(2、8、16 進位互換)
• 二進位與八進位互換
2
1
0
0
0
0
=0
0
0
1
=1
0
1
0
=2
1
1
1
=7
八進位(換二進位): 一個八進位數字,可換三位數的二進位
2-5 數字系統與資料表示法
 數字系統轉換(2、8、16 進位互換)
• 二進位與十六進位互換
3
2
1
0
0
0
0
0
=0
0
0
0
0
0
1
1
0
=1
=2
1
0
0
0
=8
10
11
1
1
1
1
1
1
0
1
= 14 →E
= 15 →F
12
13
14
15
十六進位(換二進位): 一個十六進位數字,可換四位數的二進位
2-5 數字系統與資料表示法
 數字系統轉換(2、8、16 進位互換)
1. 二、八進位制互轉:
2. 二、十六進位制互轉:
2-5 數字系統與資料表示法
 數字系統轉換(2、8、16 進位互換)
 八進位轉二進位:
(246.35)8 = (
 

2= 0102
4= 1002
6= 1102
3= 0112
10100 110. 011 101
)2
5= 1012
2-5 數字系統與資料表示法
 數字系統轉換(2、8、16 進位互換)
 十六進位轉二進位:
(1DB.D8)16 = (1 11011011. 11011000 )2
 
 
 1 = 000 1 2
 D16 = 13 = 1101
 B16 = 11 = 1011
 D16 = 13 = 1101
 8 = 1000 2
2-5 數字系統與資料表示法
 數字系統轉換(2、8、16 進位互換)
 二進位轉八進位 :
2 1 0
2 1 0 2 1 0
2 1 0
00 1101011.11 0 2= ( 153. 6 )8
(1)
(2)
(3)
(4)
(1). 20 = 1
(2).22 + 0 + 20 = 5
(3).21 + 20 = 3
(4). 22+21+0 = 6
2-5 數字系統與資料表示法
 數字系統轉換(2、8、16 進位互換)
 二進位轉十六進位 :
( A ) 1. (11010011)2 與(00111010)2 作加法運算後以16 進制表示為:
(A) (10D)16 (B) (69)16 (C) (FC)16 (D)以上皆非。
答:
11010011
+ 00111010
1 00001101
3 2 1 0
100001101
1
0
8+4+1 = 13 = D16
∴二數相加後為 : 10D16
2-5 數字系統與資料表示法
 數字系統轉換(2、8、16 進位互換)
注意. 八進位與十六進位數制的值無法直接互轉。
先將數值轉二進位,再轉八 或 十六進
2-5 數字系統與資料表示法
例:( B ).八進位數字(136)8轉換為十六進位數字,下列何者正確?
(A)4A16 (B)5E16 (C)6C16 (D)7016。
解:方法一
先轉為二進位, 再將所得結果轉為十六進位
1368= 0010111102
0010111102
22+20=5
= 5 E16
23+22+21 = 14 = E
2-5 數字系統與資料表示法
例:( B ).八進位數字(136)8轉換為十六進位數字,下列何者正確?
(A)4A16 (B)5E16 (C)6C16 (D)7016。
解:方法二
先轉為十進位, 再將所得結果轉為十六進位
1368= 1× 82 +3×81 + 6×80 = 9410
9410 =
16
5 E16
94
5 ….. 14
= 5 E16
2-5 數字系統與資料表示法
 數字系統轉換(2、8、16 進位互換)
2. 將8 進位數值654.248 轉換成十六進位,其結果為?
(A) 1AC.416 (B) 1AC.516 (C) 1AD.516 (D) 1AB.416。
654.248 = ( 110101100.010100 )2 = ( 1AC. 5 )16
6= 1102
1=1
3 2 1 0
5= 1012
10102 = 8+2 = 10= A16
3 2 1 0
4= 1002
2= 0102
4= 1002
1100 = 8 +4 = 12 = C16
3 2 1 0
0101 = 4 +1 = 5
2-5 數字系統與資料表示法
 數字系統計算
1.若將2 進位數(11.1)2 的平方,即(11.1)2 × (11.1)2 的值,用 2
進位來表示,是下面的那一項?
(A) (1100.01)2 (B) (1110.01)2 (C) (11000.1)2 (D) (11100.1)2。
答:
×
1 10 0 .01
2-5 數字系統與資料表示法
 數字系統計算
2-5 數字系統與資料表示法
• 數字系統轉換
– 電腦儲存的最小單位:位元
• 只有0或1兩種值
– 電腦資料處理:2進位
• 如:01001101…
– 資料都必須先轉換成二進制 , 再存到電腦記憶體中
輸入資料(如10 進位)
螢幕輸出
轉換成2進位
轉換成10 進位
儲存於記憶體
處理資料
儲存於記憶體
 不同的電腦軟體必須採用相同的編碼才能彼此溝通或交換資料
2-5 數字系統與資料表示法
資料表示法
實 數
定點數 : 例 16.8
浮點數 : 例 1.68 E+1
英文文字
各大語系文字
2-5 數字系統與資料表示法
 .文字資料表示法 ( 編碼 )
– 文字資料在電腦內部的表示方式
– 每種排列都對應到一個字母、數字或符號
– 即所謂的『編碼』,例如 『A』的編碼 : 『 01000001』
– 常見的編碼有:
• ASCII 、 BCD、EBCDIC碼、Unicode 碼、 BIG5(中文編碼)
– 中文字編碼系統:
• BIG5、CCCII
2-5 數字系統與資料表示法
 .文字資料表示法 ( 編碼 )
– 電腦在輸出文字資料時,會依編碼系統將二進位碼轉換成
對應的字元符號,再藉由輸出設備顯示或列印出來。
2-5 數字系統與資料表示法
 .文字資料表示法 ( 編碼 )
1. 若使用 n 位元表示一群符號,則最多能表示 2n 種符號。
□
0 □
1 □
0 □
0 □
0 □
0 □
0 □
12 ↔ A
□
0 □
1 □
0 □
0 □
0 □
0 □
1 □
02 ↔ B
(1). 使用越多位元組(byte)所能表示的符號數量越大,
在個人電腦中常以 1 或 2bytes 來表示文字或符號。
1 * 8 =8 位元
2*2*2*....*2= 256
8個 2 連乘
2 * 8 =16 位元
2*2*2*....*2= 65,536
16個2連乘
2-5 數字系統與資料表示法
 .文字資料表示法 ( 編碼 )
1.以 2 bytes來編碼,最多可表示多少個不同的符號?
答:
2×8=16
2n = 216 = 65536
可表示 65536 個
2.某一系統至多有 255 種符號,則最少要用多少位元才足以
表示這些符號?
答:
2n>= 255 ≒ 256 = 28
∴ n=8
用 8 個位元
2-5 數字系統與資料表示法
3.
答:
26 × 2 +10 = 62
62 < 26
∴ 至少需要 6 位元
4.
答:
1000-(-1000)+1 = 2001
2001 < 211 = 2048
∴ 至少需要 11 位元
2-5 數字系統與資料表示法
2、ASCII 碼
2-5 數字系統與資料表示法
4、下列字元的ASCII 碼需熟記:
字
元
ASCII 碼
10 進位值
16 進位值
空白
00100000
32
20
0
00110000
48
30
A
01000001
65
41
a
01100001
97
61
5. ASCII 字元的大小順序:
空白字元<數字字元<英文大寫字母<英文小寫字母
例如: 空白 < 0 < 1….< 9 < A< B…< Z < a < b ….< z
2-5 數字系統與資料表示法
1.
答:
A=010000012 = 26+20 = 65
A 排字母第一個 , P 排字母第十六個
16-1= 15
65+15=80
∴ P 的ASCII值為 : 80
2-5 數字系統與資料表示法
 已知 “ A “ 的 ASCII 碼十六進位表示為41,請問 “ Z ”
的 ASCII 碼二進位表示值為何?
(A)01000001 (B)01010011 (C)01011010 (D)01100001
答: (C) 01011010
4116 = 010000012
26-1 = 2510 = 000110012
(兩字母間隔 25 字)
010000012 + 000110012 = 010110102
2-5 數字系統與資料表示法
 中文文字資料
1. 中文字包括中文字、標點符號與特殊符號(含全形的英文字母)等。
2. 中文系統的功能:將中文資料輸入電腦,經處理後,依對應的中文
字型,藉各種設備(如螢幕)呈現中文。
(1).中文內碼 = 儲存碼(BIG-5,公會碼,通用碼)佔 2 Bytes
(16bit→216)可編 65536 個字碼。
(2).輸入碼 ( 外碼 ):輸入法採用的碼,
例:倉頡、注音、行列、大易、嘸蝦米。
螢幕、印表機
顯示、列印中文資料
鍵盤
記憶體
輸入中文資料
儲存中文資料
外碼
內碼
字型檔中與內碼對應的字型
網路
交換碼
不同的中文電腦系統
2-5 數字系統與資料表示法
 中文文字資料
(3). 交換碼:又為通訊碼,常用的有通用漢字標準交換碼 CISCII 佔 2 Bytes、
全漢字 CCCII 佔 3 Bytes。
內碼
Big-5 碼、公會碼、通用碼
外碼
以字形拆碼:倉頡、大易、嘸蝦米(行易)、行列
以字音拆碼:注音
其他:內碼
交換碼
通用漢字碼(CISCII)
2-5 數字系統與資料表示法
 全世界各大語系的文字資料
6、UNICODE碼
(一). UNICODE又稱 萬國碼、統一碼或萬用碼,是全球通用的
文字編碼系統,涵蓋各國常用的文字、字母及符號。
(二). 可解決各國因文字編碼方式不同,造成資料交換不易的問題。
(三). 每一個字元是以 2 bytes 來表示,可表示 65,536(216)個字元。
(四). Unicode 的優點:
(1) 包含全世界各國的文字符號,可以通行世界。
(2) 目前常見的作業系統及軟體皆支援Unicode。
(3) 繁體字與簡體字不必再經過特殊轉換。
(4) 讓軟、硬體在處理文件時,效率可以大幅提昇。
(5) 提昇網路文件的使用便利性。
7、EBCDIC碼
(1). 每個字元以 1 byte表示,可表示256(28)個字元。
(2). 目前使用此碼的電腦系統有 IBM 與 UNIVAC 等機型。
2-5 數字系統與資料表示法
– BIG5 碼:
• 使用16位元(2 bytes)的中文編碼系統
• 台灣盛行的中文內碼
– 國標碼(GB碼)
• 大陸及新加坡簡體字採用的編碼
– CISCII碼
• 通用漢字標準交換碼 , 每字以 2 Bytes 表示
– CCCII 碼:
• 由中國圖書館協會制定
• 使用24位元(3 bytes)來編碼的中文編碼系統
• 國內大多數中文圖書館均採用此編碼系統
2-5 數字系統與資料表示法
( ) 1. 萬國碼(Unicode)編碼系統是使用多少位元來表示一個字元?(A)2
(B)8
(C)16
(D)32。
( ) 2. 哪一個不是Unicode的優點?(A)Unicode文件可以直接使用簡體及繁
體字,不必透過交換碼 (B)西歐字元和中文字不可以並存於同一文
件內 (C)Unicode文件在網路上流通會比較沒困擾 (D)它使用16位元
編碼一個英文字。
( ) 3. EBCDIC碼使用 X 位元表示一個字元,UNICODE(萬國碼)使用Y位元
表示一個字元,則 X+Y 等於多少? (A)24 (B)32 (C)36 (D)64。
2-5 數字系統與資料表示法
–. 點矩陣:24*24 點陣字佔 24 * 24bit /8bit = 72 Bytes,
1 個點佔1 bit
放大會呈鋸齒狀,較佔記憶空間。
–. 伸縮字型:向量字、筆劃組字、外框字等。
–. Windows 中安裝副檔名為TTF ,屬於True Type Font (真實字型),
通常從控制台中的字型安裝。
2-5 數字系統與資料表示法
例1.一個1.2 MBytes 磁片中,最多大約可以放進幾個 64 × 64 點
的圖示(Icon)? (A) 500 (B) 1000 (C) 2000 (D) 3000。
答:
1.2 × 1024 × 1024 × 8 ÷ (64 × 64 ) = 2457.6
16 2
2-5 數字系統與資料表示法
例2. 24*24 點陣的中文字形,在記憶體佔用?
(A) 16 Bytes (B) 32 Bytes (C) 64 Bytes (D) 72 Bytes。
答 : 1 個點佔1 bit
24 × 24 ÷ 8 = 72 bytes
∴ (D)
2-5 數字系統與資料表示法
 編碼的偵錯
同位核對位元(Parity bit)
– 解決資料傳輸時,受外界干擾產生資料傳輸的錯誤
– 同位核對位元(Parity Check)
• 作用:在資料傳輸時,檢查資料是否正確
• 方法:
1. 在每一個資料後增加一個位元 (查採用1 個位元來偵錯)
2. 使資料中的 ”1” 保持奇數個或偶數個。
即 奇同位檢查 與 偶同位檢查
• 若預期會收到偶數個 1, 卻收到奇數個 1 , 表示有錯誤,則
電腦會顯示:”PARITY ERROR” 。
2-5 數字系統與資料表示法
 編碼的偵錯
以奇同位核對位元為例
欲傳輸的資料「01000001」,需增加同位檢查位元「1」以滿足奇數個「1」
接收端 再次確認資料為奇數個「1」後,再將增加的同位檢查位元「1」棄除
2-5 數字系統與資料表示法
 編碼的偵錯
1.下列二進位數字,最右邊的位元是同位元檢查碼,請問何者
是使用奇同位元檢查法?
(A) 011010000 (B) 101101101 (C) 010101010 (D) 101010100。
答 : (A) 011010000 中有3 個1,所以使用奇同位檢查。
(B) 101101101 中有 6 個 1
(C) 010101010 中有 4 個 1
(D) 101010100 中有 4 個 1
2-5 數字系統與資料表示法
 編碼的偵錯
 漢明碼(Hamming Code)
• 漢明碼的內容可以分成:資料位元和核對位元兩個部分
• 以傳輸資料中 2 的次方位元部分( 第1,2,4,8.‥個位元) 當漢明碼位元
• 具有偵測及更正錯誤雙重功能
• 檢查位元,必須符合:
• 公式
其中 r 為檢查位元,n 為資料位元
• 假設欲傳送的資料為1010101001,則加上漢明碼的資料後,
訊息將變成以下情況 : ( □ 為漢明碼位元 )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
□
□
1
□
0
1
0
□
1
0
1
0
0
1
2-5 數字系統與資料表示法
 編碼的偵錯
 循環冗餘碼 ( Cyclic Redundancy Check Code )
• 簡稱 CRC 碼
• 以二進位的除法為基礎
⑴. 將資料視為一多項式並除以另一特定多項式後得餘數。
(2).將餘數加在資料末端一併送出(即CRC 碼)。
⑶ .接收端將資料除以特定多項式,若整除代表傳送正確。
• 傳送和儲存資料前都會計算一次,並比較傳送和接受端算出的數據是否一致
• CRC 是現在常用的資料錯誤偵測的技術
只要檔案有一個位元組的數值改變,所產生 CRC 數字也會不一樣。
• 若循環多餘檢查碼 CRC 錯誤,代表檔案在寫入磁碟之後因為某些原因而損壞
2-5 數字系統與資料表示法
 編碼的偵錯
例1.下列二進位數字,最右邊的位元是同位元檢查碼,請問何者
使用奇同位元檢查法?
(A) 011010000 (B) 101101101 (C) 010101010 (D) 101010100。
答 : (A) 011010000 中有3 個1,所以使用奇同位檢查。
(B) 101101101 中有 6 個 1
(C) 010101010 中有 4 個 1
(D) 101010100 中有 4 個 1
2-5 數字系統與資料表示法
 整數
不帶小數點的數值,所用的位元越多能表示的整數範圍越大,
分為不帶號整數及帶號整數兩種。
(1). 使用越多位元組(byte)所能表示的整數範圍越大,
在個人電腦中常以 2 或 4bytes 來表示一個整數。
(2). 假設電腦以 2bytes(即16 bits)來儲存整數,
則 16 個位元共可組合出 65,536(216)個數值,
其正整數範圍為 0 ~ 65,535。
2 * 8 =16 位元
2*2*2*....*2=65536
16個2連乘
2-5 數字系統與資料表示法
 整數資料表示法
 電腦內部若資料是 16 位元,則能表示的整數範圍:
216= 26☓210 = 64 ☓ 1024 = 65536
-32768
65536 ÷ 2 = 32768
-1 0
- 32768 = -215 = - 216-1
32767 = 32768-1 = 215-1 = 216-1-1
∴ 可表示範圍: - 216-1 ~ 216-1-1
32767
2-5 數字系統與資料表示法
 整數資料表示法
 以16位元為例
-32768
-1 0
32767
∴ 可表示範圍: - 216-1 ~ 216-1-1
 電腦內部若資料是 n 位元,則能表示的整數值範圍:
∴ 可表示範圍: - 2n-1 ~ 2n-1 - 1
2-5 數字系統與資料表示法
 不帶號整數
1.不帶號整數通常以 1Byte (即8bits) 表示,沒有符號位元。
不帶號整數於記憶體中之儲存格式:
2. 不帶號整數的資料表示法
例1:使用8 位元儲存2310,記憶體中的表示方式為:
2310= 101112
0
0
0
1
0
1
1
1
2-5 數字系統與資料表示法
 不帶號整數
電腦內部若資料是 16 位元,則能表示的正整數範圍(不帶號整數):
216= 26☓210 = 64 ☓ 1024 = 65536
0 1 2 3 ... ...
65536-1 = 65535
...
65535
∴ 可表示的範圍 : 0 ~ 65535
3. 若資料是 n 位元,則能表示的數值範圍是0~(2n −1 )。
2-5 數字系統與資料表示法
 不帶號整數
( ) 1.以 8 位元表示數值56 ,使用不帶號整數表示法則應為?
(A)10111000 (B)11001000 (C)00111000 (D)00101000。
• 解:
56 = 1110002
= 001110002
2 56
2 28 . . . . 0
2 14 . . . . 0
2 7 ....0
2 3 ....1
1 ....1
由
下
往
上
取
2-5 數字系統與資料表示法
 帶號整數
1.帶號整數通常以 2Bytes (即 16bits ) 表示。
1bit 作符號位元
0:正數,1:負數 ,其餘位元表示數值
帶號整數於記憶體中之儲存格式:S 為符號位元(Sign bit)
2. 帶號整數的資料表示法
(1).正數:使用 2Bytes 儲存2310,記憶體中的表示方式為:
+ 2310= 101112
∴ 符號位元為 0
∵ 23為正數
0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1
2-5 數字系統與資料表示法
 帶號整數
2. 帶號整數的資料表示法
(2).負數:電腦用 2’s 補數表示負數
(3). 2 進位的補數有兩種:
1’s 補數:將原本 2 進位數的各位元值 1 → 0 、 0 → 1
2’s 補數:將 ( 1’s補數)之值, 再加 1
例: 000010012 的 1’s 補數 =111101102
000010012 的 2’s 補數=(111101102 + 1)=111101112
2-5 數字系統與資料表示法
補 數
 補數規則 :
基底 R:有R‘s 及(R - 1 ) ’s 補數
• 以二 進位數字系統為例
– 使用符號:0 ,1
– 有 2’s 補數 及 1’s 補數
• 補數
– N 進位數字系統
• 有 N ‘s 補數及 (N-1)’s 的補數
2-5 數字系統與資料表示法
 如何取補數
 N 進位數字系統 ( 補數 ) -- 以 10 進位為例
(1).有 10‘s 及 9‘s 補數二種
(2). 以 3 的10 ‘s 補數為例
(2). 數值 3 是十進位的數, 有 10’s 及 9’s 補數
3 的 10 ‘s 補數是 『 ? 』
→ 3 + ? 會滿 10
∴ 3 的 10 ‘s 補數是 『 7 』
3+7=10
10 + (-7 ) = 3
(3).數值
是十進位的數,
(3). 以 33的
9 ‘s 補數為例 有 10’s 及 9’s 補數
3 的 9 ‘s 補數是 『 ? 』
3+6=9
→ 3 + ? 會滿 9
∴ 3 的 9 ‘s 補數是 『 6 』
9 + (-6 ) = 3
2-5 數字系統與資料表示法
∴ 3 的 10 ‘s 補數是 『 7 』
7- 6 = 1
3 的 9 ‘s 補數是 『 6 』
∴ 3 的 10 ‘s 補數 ─ 3 的 9 ‘s 補數 = 1
任何十進位的正整數, 其10’s補數與9’s的補數相差『1』
N 進位數字系統 → 某數其 N’s補數 - (N-1)’s 的補數 = 1
練習題
36 的 10 ‘s 補數及 9 ‘s 補數各為何?
答: 先求 36 的 9 ‘s 補數
99 – 36 = 63
∴ 36 的 9 ‘s 補數是 『 63 』
63 + 1 = 64
∴ 36 的 10 ‘s 補數是 『 64 』
2-5 數字系統與資料表示法
 987 的 9’S 的補數為何 ?
答:
999 – 987 = 12
’S
 1002 的 10 的補數
答:
10000 – 1002 = 8998 或
9999 -1002=8997
8997 + 1 = 8998
2-5 數字系統與資料表示法
 電腦算術的運算
– 以加法運算為主
– 遇減法運算時,以加”負數”方式處理
例如 25 – 3 = 25 + ( - 3 )
電腦採用補數 , 取代減法與負數運算的作法
電腦是二進位 , 以 2 ‘s 的補數表示負數
故要學二進位系統的補數
2-5 數字系統與資料表示法
1.( )有關補數的敘述,下列何者是錯誤的?(A)十進位167 的9 的
補數為832 (B)十進位168 的10 的補數為832
(C)二進位
1001 的2 的補數為0110 (D)二進位1001 的1 的補數為0110。
答:
(A).十進位167的 9 的補數
(B).十進位168 的10 的補數
(C).二進位1001 的2 的補數
1
0
0110 + 1= 0111
1
(D).二進位1001 的1 的補數為
0
2-5 數字系統與資料表示法
 二進位系統的補數
– 1’s補數
•
符號:0 , 1 (二進位)
註: 3 + 7 =10
1+0=1
0+1=1
3 的 10 ‘s 補數是 『 7 』
→
→
1 的 1 ‘s 補數為 0
0 的 1 ‘s 補數為 1
– 求二進位某數 1’s 補數口訣
•
0 變 1 ;1 變 0
– 求二進位某數 2’s 補數
•
1’s 補數值 + 1
2-5 數字系統與資料表示法
 求 1001110010001101 的 1’s 補數為何 ?
※ 1’s 補數的求法 ※
∴ 1001110010001101 的 1’s 補數為:
0110001101110010
2-5 數字系統與資料表示法
 二進位系統的補數
-
2’s補數
 先求該數之1’s補數
 將1’s 補數值之最右邊之位元 , 加上「1」, 便為 2’S 補數
※ 2’s 補數的求法 ※
∴ 1001110010001101 的 2’s 補數為:
0110001101110010 + 1 = 0110001101110011
2-5 數字系統與資料表示法
1. (3C)16 轉為 2 進位,其 2 的補數是?(必須換為 2 進位)
答:
(3C)16 = 001111002
3 = 00 11
C = 12 = 1100
1’S→
+
001111002
11000011
1
1 1 0 0 010 0
∴ 答案為 : 110001002
2-5 數字系統與資料表示法
( )2.十六進位數字2B,轉為二進位,其二的補數再轉為16進位後表
示的值為 : (A) E4 (B) E5 (C)D5 (D) B1。
 2B16轉為2進位,其2’s補數是?(必須換為 2 進位)
答: 2B16 =1010112 = 001010112
不可省略
00101011
1’s 11010100
+
1
2’s 11010101
答 : 是 11010101
2-5 數字系統與資料表示法
以二的補數表示法,4 個位元來表示十進位數 – 5,
其值為: (A)1010 (B)1101 (C)1100 (D)1011
答:
5 =1012 =01012
(要補足 4 個位元)
-5 以二進位表示 : 1011
2-5 數字系統與資料表示法
(
) 3.有關補數的敘述,下列何者是錯誤的:
(A).十進位167的 9的補數是 832
(B).十進位168的 10的補數是 832
(C).二進位1001的 2的補數是 0110
(D).4位元的2’S補數表示法,其數值範圍是 -8 ~ +7
(A) :999 – 167 = 832
(B) :1000 – 168 = 832
(C) :1001 → 0110+1=0111
(D) :- 24-1~ 24-1 -1 = - 8 ~ 7
2-5 數字系統與資料表示法
( )4.系統以8個位元 表示一個整數,– 29 此負數採用2‘s
方式表示負數為?
答: (1) 正數:2910 = 111012 = 000111012
(補滿 8 個位元)
0
0
0
1
(2) 負數: -29 → 先求 29 的二進位值
2910 = 000111012
1
1
1
1’s的補數
+
= 111000102
1
2’s的補數
= 111000112
0
0
0
1
1
-29 的二進位表示值為: 111000112
1
1
0
1
由
下
往
上
取
2-5 數字系統與資料表示法
( )5.系統以 2bytes 表示一個整數,– 23 此負數採用 2‘s
方式表示負數為?
答: (1) 正數:2310 = 101112 = 00000000000101112
(補滿16個位元)
0
0
0 0
0
0
0
0
0
0
0
1 0
1
1
1
0
0
1
(2) 負數: -23 → 先求 23 的二進位值
2310 = 00000000000101112
1’s的補數
+
2’s的補數
1
1
1 1
1
1
= 11111111111010002
1
= 11111111111010012
1
1
1
1
1
0 1
-23 的二進位表示值為: 11111111111010012
由
下
往
上
取
2-5 數字系統與資料表示法
 資料長度為 n 位元,所能表示的數值範圍:1 的補數
1. 將數值以二進位值表示,再將每一位元取其反相
(即 遇1 變 0 , 遇0 變 1 )。
2. 以1的補數法表示負數時,00000000(+0)與11111111(−0)
都被用來表示0,因此以1 byte表示整數,只能表示255個數。
故電腦不以1’s補數表示負數
2-5 數字系統與資料表示法
 資料長度為 n 位元,所能表示的數值範圍:2 的補數
1. 將數值以二進位值表示,先求得1’s的補數
1’s 補數 + 1 = 2’s補數 。
2. 以2的補數法表示負數時,不會有兩種值都用來表示 0;
電腦內部是以 2’s 補數表示負數 , 1個bytes 可表示 256 個數
2-5 數字系統與資料表示法
 資料長度為 n 位元,所能表示的數值範圍:
2-5 數字系統與資料表示法
 若資料是 n 位元,則能表示的數值範圍
– 採用1’S的補數表示法,能表示的範圍:
• ( - 2n-1 + 1 ) ~ ( 2n-1 – 1 )
00000000 = 0
11111111= – 0
– 採用2’S的補數表示法,能表示的範圍:
• ( - 2n-1 ) ~ ( 2n-1 – 1 )
00000000 = 0
11111111= – 1
2-5 數字系統與資料表示法
( )1.假設電腦內部整數佔用 16 位元,採用 1 的補數表示法,
則所能表示的整數範圍為:(A)−32767到32767 (B)−32767
到32768 (C)−32768到32767 (D)−32768到32768。
答:
216 ÷ 2 =32768
負數 32767個 32768 – 1 = 32767 (+0 與 -0 重覆, 故少一個數)
正數 32768個 32768 – 1 = 32767 ( 0 ~ 32767)
-1 0
-32767
32767
( )2.『2bytes 不帶正負號的二進位數』最大值為多少?(A)32767
(B)32768 (C)65535 (D)65536。
答:
216 = 65536
65536-1 = 65535 ( 0 ~ 65535 )
2-5 數字系統與資料表示法
 整數表示法的轉換
1. 電腦處理帶號整數的方式:
(1).正數:不須轉換成補數,可直接以原數值處理。
(2).負數:須先轉換成補數,再以求得的補數值來處理。
2. 10 進位整數在電腦中的表示法:
(1).正數:直接轉成2進位即為所求(不需要取補數)。
(2).負數:
a.先去掉負號。
b.轉成2進位。
c.取2的補數即為所求。
2-5 數字系統與資料表示法
 整數表示法的轉換
3. 若以 2 的補數表示負數,則電腦中儲存的 2 進位數
值所表示的10 進位整數:
(1).先確定符號位元(即最左邊的位元)為 0 或 1。
(2).若為0,表示是正數,直接轉成 10 進位即為所求。
(3).若為1,表示是負數:
a.先取其2的補數。
b.再轉成10進位。
c.前面加個負號即為所求。
2-5 數字系統與資料表示法
例:以 2Bytes 表示一整數,若以 2’S 補數表示負數,則
(0000000000010111)2 與 (1111111111101001)2 所表示的10進位
此數為 23
整數為何?
解:(1). (0000000000010111)2 符號位元為 0
∴ 此二進位數為正數
10111 = 24+22+21+20 = 23
(2). (1111111111101001)2 符號位元為 1
∴ 此二進位數為負數
1111111111101001 2
1’s → 0000000000010110 2
1
+
2’s →(0000000000010111 )2
∴ 取此數的 2’s 補數
101112 = 24+22+21+20 = 23
∴ (1111111111101001)2 為 -23
2-5 數字系統與資料表示法
( )1.若電腦系統以 8 位元表示一個整數,以 2's 補數
表示負數,若 (11101000)2 轉換為十進位數為何?
答:
( 11101000 )2
負數 先取 2‘S 補數 , 再轉為 10 進位 , 後加上負數
111010002
1’s的補數→ 000101112
+
1
2’s的補數→ 00011000 2
4 3 2 1 0
00011000 = 24 + 23
= 24
∴ 答案為 : – 24
2-5 數字系統與資料表示法
 數字系統計算
1. 2、8、16 進位的四則運算如同 10 進位的加法,先對齊
小數點後再計算,然後每位數運算
2 進位是每2 進1
8 進位是每8 進1 16 進位是每16 進1
2. 或是先將所有的數值轉換成10 進位,再將運算之後的結果
轉換成所要的進位。
3. 加減法運算:
2-5 數字系統與資料表示法
( A ) 例1.以8 位元之2's 補數法計算1010 – 1410 =? (A) 111111002
(B) 000001002 (C) 111111012 (D) 111110112。
答:
10 = 0000 1010
14 = 0000 1110
-14→ 求14的 2‘S補數 = 1111 0010
00001010
+ 11110010
11111100
沒有進位 , 表示相加結果為負數
再取 11111100 的 2‘S補數,加負號
答案為 : – 4
2-5 數字系統與資料表示法
(
) 2.以8位元2補數計算 6-8 , 其結果為:(A) 00000010
(B) 11111101 (C ) 11111110 (D) 11111100。
答:
6–8 = 6+(–8)
2’S補數
┼
8 = 000010002
1’s的補數
111101112
+
1
2’S的補數
11111000 2
負數
1’s的補數
+
2’S的補數
000001102
111110002
11111110 2
000000012
1
換為十進位
00000010 2
∴ 答案為 : – 2
2-5 數字系統與資料表示法
 電腦記憶體位址及空間的運算
1.某計算機有 12K 記憶體, 若第一個位元組的位址是000H,
則最後一個位元組的位址為何 ?
答:
000H→ H 是16進位表示方式
12K = 12×1024 = 1228810 =
∴000H = (0000)16
(3000)16
最後一個位元組的位址 = 第一個位元組位址 + 總記憶體數 - 1
000016 + 300016 – 1 = 2FFF16
待下一題解 :另解12*1024=3*22*210= 3*(212) = 3* (24)*3
2-5 數字系統與資料表示法
 電腦記憶體位址及空間的運算
2.一程式在記憶體內的位址範圍由86FBH到96FAH, 試問該
程式所佔記憶體空間大小為多少KB ?
答: 所佔記憶體空間大小為 X KB
86FBH + X -1 = 96FAH
X = 96FAH – 86FBH + 1
10010110111110102
– 10000110111110112
+
12
= 00010000000000002
86FBH =
86FB16 = 10000110111110112
96FAH =
96FA16 = 10010110111110102
10010110111110102 – 10000110111110112 + 1
= 212 Bytes = 22×210 Bytes
= 4 KB
212 Bytes
2-5 數字系統與資料表示法
 電腦記憶體位址及空間的運算
2.已知某個指令集(Instruction Set)的每個指令(Instruction)佔 (4)10 個
位元組,若程式計數器(Program Counter)目前的值為(400000)16 ,在
執行(10)10 個指令之後,則程式計數器的值將變為多少?(A) (40000A)16
(B) (400010)16 (C) (400028)16 (D) (40003B)16 。
答:
4 × 10 = 40 = ( 28 )16
(400000)16 + ( 28 )16 = (400028)16
∴ 答案為 (C)
2-5 數字系統與資料表示法
• 三年A班, 全班有8人,已知第一個學生學號為7010, 則
班上最後一個學生的學號為何?
答 : 全班有8人 , 其學號如下:
1
2
3
4
5
6
7
8
7010
7011
7012
7013
7014
7015
7016
7017
∴最後一個學生的學號 = 7010 + 8 – 1 = 7017
最後一個 = 第一個 + 總數 - 1
必背
2-5 數字系統與資料表示法
 電腦記憶體位址及空間的運算
 某計算機有 24K 記憶體, 若第一個位元組的位址是 0000H,
則最後一個位元組的位址是 ?
答: 24 K=6×22×210=6×212=6× (24)3 = (6000)16
註
∴ 為 600016
000016 + 600016 – 1 = 5FFF16 = 5FFFH
註: 212=(24)3
四位數二進位換一個位數十六進位
24K=24*1024=2457610=600016
2-5 數字系統與資料表示法
資料表示法
2-5 數字系統與資料表示法
 浮點表示法(Floating Point Representation)
– 一種類似科學記號的數值表示法
– 用來表示整數或帶有小數點的數值
‧ 科學記號
» 以一種固定的格式來描述數值
» 例如在十進位數字系統中 -32700 及 0.00213
»
» -3.27e4 : 代表 -3.27 × 10 4 = -32700
» 2.13e-3 則代表 2.13 × 10 -3 = 0.00213
2-5 數字系統與資料表示法
六、實數表示法
1.實數:帶小數的數值
2.美國IEEE制訂”固定使用4個位元組” 表示實數的-
單精確度浮點表示法。
• 符號位元:1個位元,0:正數; 1:負數
• 指數部分:8個位元,正規化後指數值+127後,再將其轉為二進位
• 尾數部分:23個位元,從標準化的小數點後開始存起,
不夠的位元部份補 0
31
符
號
位
元
23
指數
0
假
數
2-5 數字系統與資料表示法
 IEEE單精/倍精確度浮點表示法
– 在電腦中以科學記號方式表示數值
– 包括32位元的單精度與64位元的倍精度浮點數
2-5 數字系統與資料表示法
 IEEE單精確度浮點表示法
1. 正規化
將二進位數值轉換為1.***×2e
*** 是科學記號中的假數
e 是科學記號中的指數
2. 符號位元
正數:0 負數:1
3. 指數部份
需轉為八個位元的二進位數,再加上127 並轉為二進位
4. 假數部份
將 *** 部份補足 23 個位元
31
符
號
位
元
0
23
指數
假
數
2-5 數字系統與資料表示法
例題
1.將10110.1012轉為IEEE單精度浮點數
答: 10110.1012=1.01101012×24
符號位元:0
指數:4+127=13110= 100000112
假數:0110101 ,後面加16個0
(補足23個位元)
01 0 0 000 1 1 0 1 10 1 0 100 0 0 0 00 0 0 0 0 0 0 0 0 0
答案為:01000001101101010000000000000000
2-5 數字系統與資料表示法
THANK YOU
2-5 數字系統與資料表示法
二、整數資料表示法
2 × 2 × 2 × 2 ... × 2 = 2 L 種符號
0
0
1
1
L 個位元
2-5 數字系統與資料表示法
二、整數資料表示法
3. 負整數的表示法有以下3種:
2-5 數字系統與資料表示法
三、最高位元表示法
 若以 1 個 byte來表示整數
 整數又分正整數與負整數
28= 256
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
1 1 1 1 1 1 1 1
1. 最高位元
0:正數
1:負數。
2. 以最高位元表示法表示負數時,00000000(+0)與
10000000(−0)都被用來表示0
2-5 數字系統與資料表示法
三、最高位元表示法
256 ÷ 2 = 128 (一半正數, 一半負數)
故以 1 個 byte來表示整數,可表示128個正數, 128個負數
1. 最高位元表示法
但 00000000 代表 +0
最高位元
0:正數
1:負數。
10000000 代表 − 0
2. 以最高位元表示法表示負數時,只能表示 256-1=255 ( 0重覆 )個數
2-5 數字系統與資料表示法
 電腦若使用 8 位元及 16 位元之長度來表達含正負
號之整數,則其範圍為?
因 00000000 = 0
11111111 = – 0
2-5 數字系統與資料表示法
4. Unicode 碼:
• 使用 16 位元(2bytes)編碼
• 結合世界各大語系的文字,支援各國語言的編碼系統。
• 又稱萬國碼、通用碼、統一碼、國際標準廣用碼
• 包含美洲、歐洲、中東、非洲、印度…及亞洲語系等。
2.優點:
• 可以通行世界
• 常見的作業系統均支援
• 繁體及簡體字不用再經特殊轉換
• 軟硬體在處理文件時效率可以大幅提昇
• 提昇網路文件的便利性
2-5 數字系統與資料表示法
 電腦如何利用補數作減法
 電腦中的算術運算都是以加法器處理
 加減乘除運算的基本原理為加法運算
5 × 3 =5 + 5 + 5
9– 3=?
9 + ( 3 的補數)
9 與 3 均為 10 進位
3 的 10 的補數為 7
∴ 9 + ( 3 的補數) = 9 + 7 = 1 6
捨棄進位
答案為 : 6
 兩數相減 : 人做減法
電腦則取補數相加
2-5 數字系統與資料表示法
 以 4 位元為例 , 則 1’s 補數與 2’s 補數各如何?
•
用1’s補數表示4位元的數,可表示範圍 :
(-23+1) ~ 23 -1 = -7 ~ +7
(-23) ~ 23 -1 = -8 ~ +7
正數
四位元
負數
四位元
情況
0
0000
-0
1111
佔一位
1
0001
-1
1110
2
0010
-2
1101
3
0011
-3
1100
4
0100
-4
1011
5
0101
-5
1010
6
0110
-6
1001
7
0111
-7
1000
8
1000
-8
0111
註: 正數符號位元為0,負數為1
0000表+0 , 1111表-0
但+0 與 -0 同樣都是0
用2’s補數表示4位元的數,可表示範圍 :
•
重覆
正數
四位元
負數
四位元
情況
0
0000
-0
1 0000
溢位
1
0001
-1
1111
2
0010
-2
1110
3
0011
-3
1101
4
0100
-4
1100
5
0101
-5
1011
6
0110
-6
1010
7
0111
-7
1001
8
1000
-8
1000
註:正數符號位元為0,負數符號位元為1
-0溢位,不存在,故不多佔一值
2-5 數字系統與資料表示法
8.電腦若使用 X 位元及2‘S 補數表達含正負號之整數,
其範圍為-8~+ 7,則 X 為何?
答 : X 位元可表示的整數範圍為: 2X- 1~ + 2X-1- 1
2X- 1 ~ + 2X-1- 1 = -8~+ 7
∴ 2X- 1 = 8
,故 X = 4
2-5 數字系統與資料表示法
 Overflow(溢位)
1.目前電腦大都採2's 補數系統來表達整數範圍。
MSB(最高有效位元)
符號位元
數
值
2.若電腦用長度2 Byte 來表達整數,則 n = 16 bit
216- 1 ~ + 216-1- 1 = - 32768 ~ + 32767
32767 =
0
111111111111111
- 32768 =
0
000000000000000
2-5 數字系統與資料表示法
 Overflow(溢位)
3.兩數運算結果若超出範圍即發生溢位(Overflow)。
(1). 以VB 為例:
Private Sub Form1_Activate
Dim A as Integer
A = 20000 + 20000
Print A
End Sub
變數A 宣告為整數
∴ 發生溢位的錯誤
∵ 20000 + 20000 > 32767
2-5 數字系統與資料表示法
 Overflow(溢位)
(2).溢位之狀況(以最高位元 MSB 來看)
正 + 正= 負
正-負= 負
負 + 負= 正
負-正= 正
2-5 數字系統與資料表示法
( ) 1. 一個非零的二進制數字,往左移(Left Shift)三位後,若沒有發生
溢位(overflow),其值為原來的 : (A) 3 (B) 6 (C) 8 (D) 9 倍
答:
隨便找一個二進位的數來解題
以10101102 為例,往左移三位後變為 : 1010.1102
1010.1102 = 23+21+2-1+2-2
10101102= 26+24+22+21
= 23 ☓(23+21+2-1+2-2)
∴ 為原來的 8 倍