CH3. 數字系統間的轉換

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

CH3-1. 二進位與十進位之間的轉換

● 二進位轉換成十進位

二進位轉換成十進位,其二進位整數部份右邊第一位的位值為 20、第二位的位值為 21、第三位的位值為 22 …;而小數部份左邊第一位的位值為 2-1、第二位的位值 2-2,只要將每一個二進位數乘於該數的位值,然後相加即可;在此我們以 (11101.11)2 轉換成十進位為例來做示範。



● 十進位轉換成二進位

將十進位轉成二進位,可分為兩個部份來處理;在此我們以 (29.75)10 轉換成二進位為例來做示範。

整數部份:


採連續除以 2,並保留『餘數』,直到除法運算後的商數為 0 時停止,然後由最後一次產生的餘數開始,依序由左向右排列,即可完成數部份的轉換。



小數部份:


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



CH3-2. 八進位與十進位之間的轉換

● 八進位轉換成十進位

八進位的轉換原理和二進位相同,其八進位整數部份右邊第一位的位值為 80、第二位的位值為 81...。而小數部份左邊第一位的位值為 8-1、第二位的位值為 8-2,因此八進位數位轉換成十進位,只要將每一個八進位數乘於該數的位值,然後相加即可求得;在此我們以 (127.3)8 轉換成十進位為例來做示範:



● 十進位轉換成八進位

要將十進位轉成八進位,同樣地可分為兩個部份來處理;在此以 (87.375)10 轉成八進位為例來做示範。

整數部份:

採連續除以 8,並保留『餘數』,直到除法運算後的商數為 0 時停止;然後由最後一次產生餘數開始,依序由左向右排列,即可完成整數部份的轉換。



小數部份:


將小數部份乘以 8,保留所得乘積的『整數部份』,繼續將乘法運算後所得小數部份乘以 8,直到所得的小數為 0 時停止;然後由第一次取得的整數開始、依序由左向右排列,即可完成小數部份的轉換。小數部份的取法,仍是由上往下取。



CH3-3. 十進位與十六進位之間的轉換

● 十六進位轉換成十進位

十六進位的轉換原理和二進位相同,其十六進位整數部份右邊一位的位值為 160、第二位的位值為161...。而小數部份左邊第一位的位值為 16-1、第二位的位值為 16-2,因此十六進位轉換成十進位,只要將每一個十六進位數乘於該數的位值,然後相加即可;在此我們以 (BCE.1E)16 轉換成十進位為例來做示範:



● 十進位轉換成十六進位

十進位轉成十六進位的方式,亦分為兩個部份來處理;在此以 (43969.6719)10 轉成十六進位為例來做示範。

整數部份:

採連續除以 16,並保留『餘數』,直到除法運算後的商數為 0 時停止;然後由最後一次產生的餘數開始,依序由左向右排列,即可完成整數部份的轉換。



小數部份:

將小數部份乘以 16,保留所得乘積的整數部份,繼續將乘法運算後取得的小數乘以 16,直到所得的小數為 0 時停止;然後由第一取得的整數開始,依序由左向右排列,即可完成弓金數部份的轉換。


知識加油站

與十進位互轉的通則

十進位轉成r進位的原則: 整數部份除以 R,由下往上取;小數部份乘於 R,然後由上往下取。

R 進位轉成十進位的原則:透過乘於對應位值然後相加。



CH3-4. 二進位與八進位之間的轉換

二進位與八進位互相轉換時,請以三個一組為單位來轉換會較為方便。下表為八進位數與等值的二進位數對照表:

八進位數值
等值之二進位數值
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111



● 二進位轉換成八進位

欲將二進位轉換成八進位,只要將二進位數的整數部份,由右至左每三個分成一組,不足 3 個即往前補 0;小數部份則由左至右每三個分成一組,不足往後補 0,然後再對照上表,將其轉換成對應的八進位數即可;在此我們以 (11100001110.101)2 轉換成八進位為例來做示範。



● 八進位轉換成二進位

同理,當八進位要轉成二進位時,只要將八進位的數值轉換成每三個一組的二進位數值即可;在此我們以 (3416.5)8 轉換成二進位為例來做示範。



CH3-5. 二進位與十六進位之間的轉換

二進與十六進位互相轉換時,採每四個一組為單位來轉換會較為方便。下表為十六進位數等值的二進位數對照表:

十六進位數值
等值之二進位數值
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
A
1010
B
1011
C
1100
D
1101
E
1110
F
1111



● 二進位轉換成十六進位

欲將二進位轉換成十六進位,只要將二進位數的整數部份,由右自左每四個一組進行轉換,不到四個時,就在前端補 0;小數部份則由左自右每四個一組進行轉換,不到四個時就在後面補 0,然後再對照上表將其轉換成對應的十六進位數即可;在此我們以 (1011111001.0011101)2 轉換成十六進位為例來做示範。



● 十六進位轉換成二進位

同理,當十六進位要轉換成二進位時,只要將十六進位的數值轉換成每四個一組的二進位數值即可;在此我們以 (2F9.3A)16 轉換成二進位為例來做示範。



CH3-6. 八進位與十六進位之間的轉換

● 八進位轉換成十六進位

欲將八進位轉換成十六進位,可以先轉換成二進位數字,再將二進位轉換成十六進位即可;在此我們以 (346.7)8 轉換成十六進位為例來做示範:

● 十六進位轉換成八進位

欲將十六進位轉換成八進位,可以先轉換成二進位數字,再將二進位轉換成八進位即可;在此我們以 (E6.E)16 轉換成八進位為例來做示範:


知識加油站

二、八、十六進位轉換的通則

二進位與八進位:要以 3 個單位為一組來轉換。

二進位與十六進位:要以 4 個單位為一組來轉換。

八進位與十六進位:必須先轉成二進位後再進行轉換。

考考你

(1)試將 (43969.75)10 轉成十六進位數字?