在python中将十进制转换为二进制

有没有在Python中的任何模块或function,我可以用来将十进制数转换为其二进制等值? 我能够将二进制转换为十进制使用int('[binary_value]',2),所以任何方式做反向,而不写代码自己做?

所有数字都以二进制forms存储。 如果你想要一个二进制给定数字的文本表示,使用bin(i)

 >>> bin(10) '0b1010' >>> 0b1010 10 
 "{0:#b}".format(my_int) 

没有前面的0b:

 "{0:b}".format(int) 
 def dec_to_bin(x): return int(bin(x)[2:]) 

这很容易。

您也可以使用numpy模块的function

 from numpy import binary_repr 

也可以处理前导零:

 Definition: binary_repr(num, width=None) Docstring: Return the binary representation of the input number as a string. This is equivalent to using base_repr with base 2, but about 25x faster. For negative numbers, if width is not given, a - sign is added to the front. If width is given, the two's complement of the number is returned, with respect to that width. 

我同意@ aaronasterling的答案。 但是,如果您想要一个非二进制string,您可以将其转换为一个int,那么您可以使用规范algorithm:

 def decToBin(n): if n==0: return '' else: return decToBin(n/2) + str(n%2) 
 n=int(input('please enter the no. in decimal format: ')) x=n k=[] while (n>0): a=int(float(n%2)) k.append(a) n=(na)/2 k.append(0) string="" for j in k[::-1]: string=string+str(j) print('The binary no. for %d is %s'%(x, string)) 

为了完成:如果要将定点表示转换为其二进制等效表示,可执行以下操作:

  1. 获取整数和小数部分。

     from decimal import * a = Decimal(3.625) a_split = (int(a//1),a%1) 
  2. 在二进制表示中转换小数部分。 为了实现这个乘以2。

     fr = a_split[1] str(int(fr*2)) + str(int(2*(fr*2)%1)) + ... 

你可以阅读这里的解释。