为了将整数转换为二进制,我使用了以下代码:
>>> bin(6)
'0b110'
当删除'0b'时,我使用这个:
>>> bin(6)[2:]
'110'
如果我想显示6为00000110而不是110,我能做什么?
为了将整数转换为二进制,我使用了以下代码:
>>> bin(6)
'0b110'
当删除'0b'时,我使用这个:
>>> bin(6)[2:]
'110'
如果我想显示6为00000110而不是110,我能做什么?
当前回答
eumiro的答案更好,但我只是为了多样化而发布这个:
>>> "%08d" % int(bin(6)[2:])
00000110
其他回答
>>> '{0:08b}'.format(6)
'00000110'
只是解释一下格式化字符串的部分:
{}将变量放入字符串中 0取参数位置为0的变量 :为这个变量添加格式化选项(否则它将表示十进制6) 08将数字格式化为左边加零的8位数字 B将数字转换为二进制表示形式
如果你使用的是Python 3.6或更高版本,你也可以使用f-strings:
>>> f'{6:08b}'
'00000110'
假设您希望解析用于表示变量的位数,而该变量并不总是常量,那么使用numpy.binary是一种好方法。
当你把二进制应用到幂集的时候会有用吗
import numpy as np
np.binary_repr(6, width=8)
你可以用just:
"{0:b}".format(n)
在我看来,这是最简单的方法!
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)
简单的递归代码:
def bin(n,number=('')):
if n==0:
return(number)
else:
number=str(n%2)+number
n=n//2
return bin(n,number)