我很好奇如何更改位数以表示二进制数。 例如,假设我想将十进制1表示为二进制。我用:
bin(1)并获得0b1。
如何获得0b01或0b001或0b0001等的回报?
答案 0 :(得分:6)
>>> 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
#