欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 【计算机基础】任意进制转换方法详解

【计算机基础】任意进制转换方法详解

2025/5/13 3:14:51 来源:https://blog.csdn.net/qq_40205510/article/details/147755032  浏览:    关键词:【计算机基础】任意进制转换方法详解

文章目录

      • 一、通用进制转换(整数部分)
        • 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=0ndi×Ri
步骤

  1. 从右到左编号(0开始)
  2. 每位数值乘 R 的幂次
  3. 结果相加

示例
( 127 ) 8 → 87 (127)_8 → 87 (127)887
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 取余法

步骤

  1. 不断除以 R 记录余数
  2. 倒序排列余数

示例
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:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词