在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