2進数を表すためにビット数を変更する方法に興味があります。たとえば、10進数の1を2進数に表現したいとします。私が使う:
bin(1)および0b1を取得します。
0b01、0b001、0b0001などのリターンを取得するにはどうすればよいですか?
フォーマット文字列構文を使用します。
>>> format(1, '#04b')
'0b01'
>>> format(1, '#05b')
'0b001'
>>> format(1, '#06b')
'0b0001'
You can use str.zfill to pad the binary part:
def padded_bin(i, width):
s = bin(i)
return s[:2] + s[2:].zfill(width)
I don't believe there's a builtin way to do this. However, since bin
just returns a string, you could write a wrapper function which modifies the string to have the right number of bits:
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
#