计算机进制转换:从基础到蓝桥杯实战

1. 进制转换基础概念解析

计算机科学中最基础的技能莫过于进制转换了。记得我第一次参加蓝桥杯比赛时,就因为对进制转换不够熟练,在一道看似简单的题目上浪费了整整20分钟。进制转换不仅是编程竞赛的常客,更是计算机底层原理的核心基础。

1.1 为什么需要掌握进制转换

计算机内部使用二进制(0和1)表示所有数据,而人类更习惯使用十进制。此外,十六进制因其与二进制的天然对应关系,在内存地址表示、颜色编码等领域广泛应用。不同进制间的转换能力,直接决定了我们理解计算机底层工作原理的深度。

1.2 常见进制系统特点

  • 二进制(Binary):基数为2,数字符号为0和1
  • 八进制(Octal):基数为8,数字符号为0-7
  • 十进制(Decimal):基数为10,数字符号为0-9
  • 十六进制(Hexadecimal):基数为16,数字符号为0-9加上A-F

注意:在编程中,十六进制的A-F不区分大小写,但为了代码统一性,建议保持一致性。

需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。

2. 进制转换核心算法详解

2.1 十进制转其他进制(除基取余法)

这是最基础的转换方法,适用于将十进制数转换为任意进制。以十进制数29转换为二进制为例:

  1. 29 ÷ 2 = 14 余 1
  2. 14 ÷ 2 = 7 余 0
  3. 7 ÷ 2 = 3 余 1
  4. 3 ÷ 2 = 1 余 1
  5. 1 ÷ 2 = 0 余 1

将余数从下往上读取,得到二进制结果:11101

python复制def decimal_to_base(n, base):
    if n == 0:
        return "0"
    digits = []
    while n > 0:
        remainder = n % base
        digits.append(str(remainder) if remainder < 10 else chr(55 + remainder))
        n = n // base
    return ''.join(reversed(digits))

2.2 其他进制转十进制(位权展开法)

这个方法适用于将任意进制数转换为十进制。以二进制数1101为例:

1×2³ + 1×2² + 0×2¹

内容推荐

已经到底了哦
已经到底了哦