在 Python 中,将十进制整数转换为二进制有多种方法。以下是几种常见的方式:
1. 使用 bin()
函数
bin()
是 Python 内置函数,可以将十进制整数转换为二进制字符串。
语法
bin(n)
示例
n = 13
binary_str = bin(n)
print(binary_str) # 输出: 0b1101
说明
bin()
返回的字符串以0b
开头,表示这是一个二进制数。- 如果需要去掉
0b
前缀,可以使用切片操作:binary_str = bin(n)[2:] print(binary_str) # 输出: 1101
2. 使用 format()
函数
format()
函数可以将整数格式化为二进制字符串。
语法
format(n, 'b')
示例
n = 13
binary_str = format(n, 'b')
print(binary_str) # 输出: 1101
说明
format()
不会添加0b
前缀,直接返回二进制字符串。- 如果需要固定位数,可以指定宽度。例如,
format(n, '08b')
会将结果填充为 8 位:binary_str = format(n, '08b') print(binary_str) # 输出: 00001101
3. 使用 f-string
(Python 3.6+)
f-string
是一种简洁的字符串格式化方式,支持直接格式化二进制。
语法
f"{n:b}"
示例
n = 13
binary_str = f"{n:b}"
print(binary_str) # 输出: 1101
说明
- 类似于
format()
,f-string
也不会添加0b
前缀。 - 同样可以指定宽度,例如
f"{n:08b}"
。
4. 手动实现转换
如果你需要手动实现十进制到二进制的转换,可以使用除 2 取余法。
代码实现
def decimal_to_binary(n):
if n == 0:
return "0"
binary_str = ""
while n > 0:
binary_str = str(n % 2) + binary_str
n = n // 2
return binary_str
# 示例
n = 13
print(decimal_to_binary(n)) # 输出: 1101
说明
- 通过不断除以 2 并取余数,将余数逆序拼接成二进制字符串。
总结
- 推荐方法:使用
bin()
、format()
或f-string
,简单高效。 - 手动实现:适合理解二进制转换的原理,但实际开发中无需重复造轮子。
根据需求选择合适的方法即可!