Python:选择代表二进制数的位数

时间:2012-12-03 02:02:33

标签: python binary bits

我很好奇如何更改位数以表示二进制数。 例如,假设我想将十进制1表示为二进制。我用:

bin(1)并获得0b1。

如何获得0b01或0b001或0b0001等的回报?

3 个答案:

答案 0 :(得分:6)

使用Format String Syntax

>>> format(1, '#04b')
'0b01'
>>> format(1, '#05b')
'0b001'
>>> format(1, '#06b')
'0b0001'

答案 1 :(得分:2)

您可以使用str.zfill填充二进制部分:

def padded_bin(i, width):
    s = bin(i)
    return s[:2] + s[2:].zfill(width)

答案 2 :(得分:0)

我不相信有一种内置的方法可以做到这一点。但是,由于bin只返回一个字符串,您可以编写一个包装函数来修改字符串以获得正确的位数:

def binbits(x, n):
    """Return binary representation of x with at least n bits"""
    bits = bin(x).split('b')[1]

    if len(bits) < n:
        return '0b' + '0' * (n - len(bits)) + bits
#