我想使用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
来做到这一点?
答案 0 :(得分:1)
int
与base=2
的用途是将给定基数(base=2
的二进制)中的字符串值转换为整数,而不是将正尝试的二进制值转换为二进制去做。
从docs
返回由数字或字符串x构成的整数对象,如果未提供任何参数,则返回0。如果x不是数字或给定base,则x必须是一个字符串,字节或bytearray实例,以基数为底的整数。
答案 1 :(得分:1)
您只能使用int()将事物转换为,从数字转换为二进制的最简单方法是函数bin()。请注意,int()也可以将二进制转换为整数。