为了将整数转换为二进制,我使用了以下代码:

>>> bin(6)  
'0b110'

当删除'0b'时,我使用这个:

>>> bin(6)[2:]  
'110'

如果我想显示6为00000110而不是110,我能做什么?


当前回答

假设您希望解析用于表示变量的位数,而该变量并不总是常量,那么使用numpy.binary是一种好方法。

当你把二进制应用到幂集的时候会有用吗

import numpy as np
np.binary_repr(6, width=8)

其他回答

另一个想法:

>>> bin(6)[2:].zfill(8)
'00000110'

通过字符串插值的更短方法(Python 3.6+):

>>> f'{6:08b}'
'00000110'

更简单的方法

my_num = 6
print(f'{my_num:b}')

. .或者如果你不确定它应该总是8位,你可以把它作为一个参数传递:

>>> '%0*d' % (8, int(bin(6)[2:]))
'00000110'
('0' * 7 + bin(6)[2:])[-8:]

or

right_side = bin(6)[2:]
'0' * ( 8 - len( right_side )) + right_side

简单的递归代码:

 def bin(n,number=('')):
   if n==0:
     return(number)
   else:
     number=str(n%2)+number
     n=n//2
     return bin(n,number)