使用int将十进制转换为bianary

时间:2019-01-10 02:25:18

标签: python

我想使用int将数字168转换为二进制,
报告错误

In [11]: int(168, base=2)                                                                                                                             

----> 1 int(168, base=2)

TypeError: int() can't convert non-string with explicit base

我阅读了文档并尝试了

In [13]: int("168", base=2)                                                                                                                           
ValueError: invalid literal for int() with base 2: '168'

我了解到bin可以完成工作

In [16]: bin(168)                                                                                                                                     
Out[16]: '0b10101000'

如何使用int来做到这一点?

2 个答案:

答案 0 :(得分:1)

intbase=2的用途是将给定基数(base=2的二进制)中的字符串值转换为整数,而不是将正尝试的二进制值转换为二进制去做。

docs

  

返回由数字或字符串x构成的整数对象,如果未提供任何参数,则返回0。如果x不是数字或给定base,则x必须是一个字符串,字节或bytearray实例,以基数为底的整数。

答案 1 :(得分:1)

您只能使用int()将事物转换为,从数字转换为二进制的最简单方法是函数bin()。请注意,int()也可以将二进制转换为整数。