在Python中将整数转换为二进制

265

为将一个整数转换为二进制,我使用了以下代码:

>>> bin(6)  
'0b110'

当需要删除'0b'时,我使用以下方法:

>>> bin(6)[2:]  
'110'

如果我想将6显示为00000110而不是110,我该怎么做呢?


3
可能是Python int to binary? 的重复问题。 - Martin Thoma
17个回答

3

甚至更简单的方法

my_num = 6
print(f'{my_num:b}')

2
假设您希望从一个不总是恒定的变量中解析表示数字所使用的位数,一个好的方法是使用numpy.binary。当您将二进制应用于幂集时,这可能会很有用。
import numpy as np
np.binary_repr(6, width=8)

1
('0' * 7 + bin(6)[2:])[-8:]

或者

right_side = bin(6)[2:]
'0' * ( 8 - len( right_side )) + right_side

4
虽然这段代码可以回答问题,但是提供解释它如何解决问题以及为什么能够解决问题的上下文会增加答案的长期价值。 - Nic3500

0
    def convertToBinary(self, n):
        result=""
        if n==0:
            return 0

        while n>0:
            r=n%2
            result+=str(r)
            n=int(n/2)
        if n%2==0:
            result+="0"
        return result[::-1]

0

使用递归的简单代码:

 def bin(n,number=('')):
   if n==0:
     return(number)
   else:
     number=str(n%2)+number
     n=n//2
     return bin(n,number)

你的回答可以通过提供更多支持性信息来改进。请[编辑]以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是否正确。您可以在帮助中心找到有关编写良好答案的更多信息。 - Community

0
def int_to_bin(num, fill):
    bin_result = ''

    def int_to_binary(number):
        nonlocal bin_result
        if number > 1:
            int_to_binary(number // 2)
        bin_result = bin_result + str(number % 2)

    int_to_binary(num)
    return bin_result.zfill(fill)

0

Python软件包二进制小数具有完整的二进制和二进制小数实现。您可以按照以下方式执行操作:

from binary_fractions import Binary
b = Binary(6) # creates a binary fraction string
b.lfill(8) # fills to length 8

这个包含有许多其他方法,可以完全精确地操作二进制字符串。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接