文章目錄
- 一、通用進制轉換(整數部分)
- 1. R進制轉十進制(整數)
- 2. 十進制轉R進制(整數)
- 二、通用進制轉換(小數部分)
- 1. 十進制小數轉R進制
- 2. R進制小數轉十進制
- 三、二進制與十進制互轉(整數部分)
- 1. 二進制轉十進制(整數)
- 2. 十進制轉二進制(整數)
- 四、二進制與十進制互轉(小數部分)
- 1. 十進制小數轉二進制
- 2. 二進制小數轉十進制
- 五、其他進制手算轉換技巧
- 1. 八進制 ? 二進制
- 2. 十六進制 ? 二進制
- 六、 進制轉換工具函數
- 五、總結
一、通用進制轉換(整數部分)
1. R進制轉十進制(整數)
通用公式:
D 10 = ∑ i = 0 n d i × R i D_{10} = \sum_{i=0}^{n} d_i \times R^i D10?=i=0∑n?di?×Ri
步驟:
- 從右到左編號(0開始)
- 每位數值乘 R 的冪次
- 結果相加
示例:
( 127 ) 8 → 87 (127)_8 → 87 (127)8?→87
1 × 8 2 + 2 × 8 1 + 7 × 8 0 = 87 1×8^2 +2×8 ^1 +7×8^0 = 87 1×82+2×81+7×80=87
Python 代碼:
def r_to_decimal(num_str, base):digits = "0123456789ABCDEF"decimal = 0num_str = num_str.upper()n = len(num_str)for i in range(n):digit = digits.index(num_str[i])decimal += digit * (base ** (n - 1 - i))return decimal
2. 十進制轉R進制(整數)
原理:除 R 取余法
步驟:
- 不斷除以 R 記錄余數
- 倒序排列余數
示例:
13 → ( 15 ) 8 13 → (15)_8 13→(15)8?
13 ÷ 8 = 1 ... 5 ↑
1 ÷ 8 = 0 ... 1 ↑
結果為 15(從下往上讀)
Python 代碼:
def decimal_to_r(decimal_num, base):digits = "0123456789ABCDEF"if decimal_num == 0: