在 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 中二进制与其他进制之间转换的一些基本操作。如果你有其他需求,欢迎告诉我!
发表回复