在 Python 中,二进制转换是非常常见的操作。你可以将整数转换为二进制,或者将二进制字符串转换回整数。以下是一些常用的二进制转换方法:

1. 整数转换为二进制

使用 Python 内置的 bin() 函数可以将整数转换为二进制表示。它返回一个以 '0b' 开头的字符串,表示该整数的二进制形式。

# 整数转二进制
num = 10
binary = bin(num)
print(binary)  # 输出: 0b1010

2. 去掉 0b 前缀

如果你只需要二进制部分,可以通过切片去掉 '0b' 前缀:

binary_str = bin(num)[2:]
print(binary_str)  # 输出: 1010

3. 二进制字符串转换为整数

使用 Python 内置的 int() 函数,将二进制字符串转换为十进制整数。指定 base=2 表示输入字符串是二进制格式。

# 二进制转整数
binary_str = '1010'
decimal = int(binary_str, 2)
print(decimal)  # 输出: 10

4. 二进制格式化输出

如果你需要将数字以固定长度的二进制格式输出,可以使用 format() 函数或 f-string 来格式化。

# 使用 format()
num = 10
binary_format = format(num, '08b')  # 8 位二进制,补齐零
print(binary_format)  # 输出: 00001010

# 使用 f-string
binary_f_string = f"{num:08b}"
print(binary_f_string)  # 输出: 00001010

5. 十进制与二进制互转的完整例子

def decimal_to_binary(n):
    return bin(n)[2:]

def binary_to_decimal(b):
    return int(b, 2)

# 测试
decimal_num = 23
binary_num = '10111'

print(f"十进制 {decimal_num} 转二进制: {decimal_to_binary(decimal_num)}")
print(f"二进制 {binary_num} 转十进制: {binary_to_decimal(binary_num)}")

输出:

十进制 23 转二进制: 10111
二进制 10111 转十进制: 23

6. 二进制的补码表示

对于负数,计算机中通常使用补码表示。在 Python 中,可以通过对负数使用 bin() 函数来查看补码的表示。

negative_num = -10
binary_negative = bin(negative_num)
print(binary_negative)  # 输出: -0b1010

7. 与其他进制的转换

除了二进制,Python 还支持其他进制的转换。比如:

  • 八进制oct()
  • 十六进制hex()

例如:

num = 10
print(oct(num))  # 输出: 0o12
print(hex(num))  # 输出: 0xa

这些是 Python 中二进制与其他进制之间转换的一些基本操作。如果你有其他需求,欢迎告诉我!