在Python中将整数转换为二进制
为了将整数转换为二进制,我已经使用这个代码:
>>> bin(6) '0b110'
何时擦除'0b',我用这个:
>>> bin(6)[2:] '110'
如果我想将6
显示为00000110
而不是110
我该怎么办?
>>> '{0:08b}'.format(6) '00000110'
只是解释格式化string的部分:
-
{}
将variables放入一个string中 -
0
取参数位置0处的variables -
:
为这个variables添加格式化选项(否则它将代表十进制6
) -
08
将数字格式化为左侧零填充的八位数字 -
b
将数字转换为其二进制表示
只是另一个想法:
>>> bin(6)[2:].zfill(8) '00000110'
有点旋转的方法…
>>> bin8 = lambda x : ''.join(reversed( [str((x >> i) & 1) for i in range(8)] ) ) >>> bin8(6) >>> '00000110'
只需使用格式function
format(6, "08b")
一般forms是
format(<the_integer>, "<0><width_of_string><format_specifier>")
..或者如果您不确定它应该始终是8位数字,您可以将其作为parameter passing:
>>> '%0*d' % (8, int(bin(6)[2:])) '00000110'
eumiro的答案是更好的,但是我只是张贴这个品种:
>>> "%08d" % int(bin(6)[2:]) 00000110