我很好奇如何更改位数来表示二进制数。例如,假设我想将十进制 1 表示为二进制。我用:
bin(1) 并得到 0b1。
我怎样才能得到回报说 0b01 或 0b001 或 0b0001 等?
使用格式字符串语法:
>>> format(1, '#04b')
'0b01'
>>> format(1, '#05b')
'0b001'
>>> format(1, '#06b')
'0b0001'
您可以使用str.zfill填充二进制部分:
def padded_bin(i, width):
s = bin(i)
return s[:2] + s[2:].zfill(width)
我不相信有一种内置的方法可以做到这一点。但是,由于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
#