Python 进制转换详解

十进制转其他进制

1. 十进制 → 二进制

1
print(bin(11))  # 输出: 0b1011
  • bin() 函数将十进制转换为二进制
  • 前缀 0b 表示二进制数
  • 11(十进制) = 1011(二进制)

2. 十进制 → 八进制

1
print(oct(11))  # 输出: 0o13
  • oct() 函数将十进制转换为八进制
  • 前缀 0o 表示八进制数
  • 11(十进制) = 13(八进制)

3. 十进制 → 十六进制

1
print(hex(11))  # 输出: 0xb
  • hex() 函数将十进制转换为十六进制
  • 前缀 0x 表示十六进制数
  • 11(十进制) = b(十六进制)

其他进制转十进制

1. 二进制 → 十进制

1
print(int('0b1011', 2))  # 输出: 11
  • int() 函数将字符串转换为整数
  • 第二个参数 2 表示输入是二进制
  • 1011(二进制) = 11(十进制)

2. 八进制 → 十进制

1
print(int('0o13', 8))  # 输出: 11
  • 第二个参数 8 表示输入是八进制
  • 13(八进制) = 11(十进制)

3. 十六进制 → 十进制

1
print(int('0xb', 16))  # 输出: 11
  • 第二个参数 16 表示输入是十六进制
  • b(十六进制) = 11(十进制)

进制转换表

进制 前缀 转换函数 示例
二进制 0b bin() bin(11) → ‘0b1011’
八进制 0o oct() oct(11) → ‘0o13’
十六进制 0x hex() hex(11) → ‘0xb’
十进制 int() int(‘0b1011’,2) → 11

注意事项

  1. 前缀可以省略,但必须指定进制参数:

    1
    print(int('1011', 2))  # 同样输出11
  2. 十六进制字母不区分大小写:

    1
    print(int('0xB', 16))  # 输出11
  3. 非法字符会导致ValueError:

    1
    print(int('0b102', 2))  # 报错:二进制不能有2
  4. 浮点数需要先转换为整数:

    1
    print(hex(int(11.5)))  # 输出0xb