文章目录
- 一、通用进制转换(整数部分)
- 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∑ndi×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: