为了将整数转换为二进制,我使用了以下代码:
>>> bin(6)
'0b110'
当删除'0b'时,我使用这个:
>>> bin(6)[2:]
'110'
如果我想显示6为00000110而不是110,我能做什么?
为了将整数转换为二进制,我使用了以下代码:
>>> bin(6)
'0b110'
当删除'0b'时,我使用这个:
>>> bin(6)[2:]
'110'
如果我想显示6为00000110而不是110,我能做什么?
当前回答
只需使用format函数
format(6, "08b")
一般形式是
format(<the_integer>, "<0><width_of_string><format_specifier>")
其他回答
def int_to_bin(num, fill):
bin_result = ''
def int_to_binary(number):
nonlocal bin_result
if number > 1:
int_to_binary(number // 2)
bin_result = bin_result + str(number % 2)
int_to_binary(num)
return bin_result.zfill(fill)
有点糊弄的方法…
>>> bin8 = lambda x : ''.join(reversed( [str((x >> i) & 1) for i in range(8)] ) )
>>> bin8(6)
'00000110'
>>> bin8(-3)
'11111101'
走老路总是管用的
def intoBinary(number):
binarynumber=""
if (number!=0):
while (number>=1):
if (number %2==0):
binarynumber=binarynumber+"0"
number=number/2
else:
binarynumber=binarynumber+"1"
number=(number-1)/2
else:
binarynumber="0"
return "".join(reversed(binarynumber))
. .或者如果你不确定它应该总是8位,你可以把它作为一个参数传递:
>>> '%0*d' % (8, int(bin(6)[2:]))
'00000110'
简单的递归代码:
def bin(n,number=('')):
if n==0:
return(number)
else:
number=str(n%2)+number
n=n//2
return bin(n,number)