進位(數字系統)
二進位(Binary,bin)
- 基數為 2 的系統,逢 2 進位
數字符號:0, 1
八進位(Octal,oct)
- 基數 8 的系統,逢 8 進位
- 數字符號:
0, 1, 2, 3, 4, 5, 6, 7
十進位(Decimal,dec)
- 基數 10 的系統,逢 10 進位
- 數字符號:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
十六進位(Hexadecimal,hex)
- 基數 16 的系統,逢 16 進位
- 數字符號:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 與 10 → A, 11 → B, 12 → C, 13 → D, 14 → E, 15 → F
對照表
十進位 | 二進位 | 八進位 | 十六進位 |
---|---|---|---|
0 | 0000 | 0 | 0 |
1 | 0001 | 1 | 1 |
2 | 0010 | 2 | 2 |
3 | 0011 | 3 | 3 |
4 | 0100 | 4 | 4 |
5 | 0101 | 5 | 5 |
6 | 0110 | 6 | 6 |
7 | 0111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
有效位
最高有效位(Most Significant Bit,MSB),表示最左邊的位元 → 1
010
最低有效位(Least Significant Bit,LSB),表示最右邊的位元 → 101
0
進位(數字系統)轉換規則
十進位轉換成其他進位
整數 → 除法
- 將(十進位『整數』
/
『欲轉換進位數』),一直除到商數為 0,再依序『由下往上』取出餘數
小數 → 乘法
- 將(十進位『小數』
*
『欲轉換進位數』),一直乘到小數為 0,再依序『由上往下』取出整數
其他進位轉換成十進位
以二進位為例:1101.101(2)
整數 → 乘法
- 以小數點為中心,『由右至左』累加次方,在依(數字
*
『欲轉換進位數』次方) 1101 →
13
12
01
10
→(1 * 23) + (1 * 22) + (0 * 21) + (1 * 20)
小數 → 乘法
- 以小數點為中心,『由左至右』累加負次方,在依(數字
*
『欲轉換進位數』負次方) .101 →
1-1
0-2
1-3
→(1 * 2-1) + (0 * 2-2) + (1 * 2-3)
次方計算常見問題
0 * 2 = 0
,0
*
任何數都等於0
20 = 1
,任何底數的0
次方都等於1
22 = 2 * 2
,多少次方則依此類推2-2 = 1/(2 * 2) = 0.25
,多少次方則依此類推
進位(數字系統)轉換
二進位與十進位的轉換
範例 | 計算公式 |
---|---|
12(10) = 1100(2) | 12 / 2 = 6 餘數 0 ↑ => 1100 (2) 6 / 2 = 3 餘數 0 | 3 / 2 = 1 餘數 1 | 1 / 2 = 0 餘數 1 | |
15.625(10) = 1111.101(2) | 整數部份15 / 2 = 7 餘數 1 ↑ => 1111 (2) 7 / 2 = 3 餘數 1 | 3 / 2 = 1 餘數 1 | 1 / 2 = 0 餘數 1 | 小數部份 0.625 * 2 = 1.250 取整數 1 | 0.250 * 2 = 0.500 取整數 0 | 0.500 * 2 = 1.000 取整數 1 ↓ => 101 (2) |
範例 | 計算公式 |
---|---|
101(2) = 5(10) | (1 * 2 2 ) + (0 * 21) + (1 * 2 0 ) = 5 (10) |
1101.101(2) = 13.625(10) | 整數部份(1 * 2 3 ) + (1 * 2 2 ) + (0 * 21) + (1 * 2 0 ) = 13 (10)小數部份 (1 * 2 -1 ) + (0 * 2-2) + (1 * 2 -3 ) = 0.625 (10) |
八進位與十進位的轉換
範例 | 計算公式 |
---|---|
395(10) = 613(8) | 395 / 8 = 49 餘數 3 ↑ => 613 (8) 49 / 8 = 6 餘數 1 | 6 / 8 = 0 餘數 6 | |
17.25(10) = 21.2(8) | 整數部份17 / 8 = 2 餘數 1 ↑ => 21 (8) 2 / 8 = 0 餘數 2 | 小數部份 0.25 * 8 = 2.00 取整數 2 ↓ => 0.2 (8) |
範例 | 計算公式 |
---|---|
26(8) = 22(10) | (2 * 81) + (6 * 80) = 22(10) |
162.4(8) = 114.5(10) | 整數部份(1 * 8 2 ) + (6 * 8 1 ) + (2 * 8 0 ) = 114 (10)小數部份 (4 * 8 -1 ) = 0.5 (10) |
十六進位與十進位的轉換
範例 | 計算公式 |
---|---|
2748(10) = ABC(16) | 2748 / 16 = 171 餘數 12 ↑ => ABC (16) 171 / 16 = 10 餘數 11 | 10 / 16 = 0 餘數 10 | |
799.375(10)= 31F.6(16) | 整數部份799 / 16 = 49 餘數 15 ↑ => 31F (16) 49 / 16 = 3 餘數 1 | 3 / 16 = 0 餘數 3 | 小數部份 0.375 * 16 = 6.000 ↓ => 0.6 (16) |
範例 | 計算公式 |
---|---|
4EB(16) = 1259(10) | (4 * 16 2 ) + (14 * 16 1 ) + (11 * 16 0 ) = 1259 (10) |
B2.5(16) = 178.3125(10) | 整數部份(11 * 16 1 ) + (2 * 16 0 ) = 178 (10)小數部份 (5 * 16 -1 ) = 0.3125 (10) |
八進位與二進位的轉換
8 = 23
,所以八進位可以 3 個位數的二進位表示,將每一個八進位數字都轉成二進位數字。
範例 | 計算公式 |
---|---|
7 6 .2 1 (8) = | 整數第二位數 7 7 / 2 = 3 餘數 1 ↑ => 111 (2) 3 / 2 = 1 餘數 1 | 1 / 2 = 0 餘數 1 | 整數第一位數 6 / 2 = 3 餘數 0 ↑ => 110 (2) 3 / 2 = 1 餘數 1 | 1 / 2 = 0 餘數 1 | 小數第一位數 2 / 2 = 1 餘數 0 ↑ => (2) 1 / 2 = 0 餘數 1 | 小數第二位數 1 / 2 = 0 餘數 1 ↑ => (2) |
- 計算結果,不足 3 個位數則「前面」補
0
範例 | 計算公式 |
---|---|
| 整數左側三位數 101 (1 * 2 2 ) + (0 * 21) + (1 * 2 0 ) = 5 (8)整數中間三位數 (0 * 22) + (0 * 21) + (1 * 2 0 ) = 1 (8)整數右側三位數 (1 * 2 2 ) + (1 * 2 1 ) + (0 * 20) = 6 (8)小數三位數 (0 * 22) + (1 * 2 1 ) + (0 * 20) = 2 (8) |
- 以小數點為基準,分向左(整數)右(小數)兩邊,每 3 個位數為一組
- 「整數」不足 3 個位數則「前面」補
0
- 「小數」不足 3 個位數則「後面」補
0
十六進位與二進位的轉換
16 = 24
,所以十六進位可以 4 個位數的二進位表示,將每一個十六進位數字都轉成二進位數字。
範例 | 計算公式 |
---|---|
5 B D 1 .B (16) = 0101 1011 1101 0001 .1011 (2) | 整數第四位數 5 5 / 2 = 2 餘數 1 ↑ => (2) 2 / 2 = 1 餘數 0 | 1 / 2 = 0 餘數 1 | 整數第三位數 11 / 2 = 5 餘數 1 ↑ => 1011 (2) 5 / 2 = 2 餘數 1 | 2 / 2 = 1 餘數 0 | 1 / 2 = 0 餘數 1 | 整數第二位數 13 / 2 = 6 餘數 1 ↑ => 1101 (2) 6 / 2 = 3 餘數 0 | 3 / 2 = 1 餘數 1 | 1 / 2 = 0 餘數 1 | 整數第一位數 1 / 2 = 0 餘數 1 ↑ => (2)小數第一位數 11 / 2 = 5 餘數 1 ↑ => 1011 (2)
|