这个简单的程序检查用户提供的整数中的第4位是否打开。您提供一个数字(例如12),然后它将从字符串转换为整数,然后从base10转换为二进制。但是,尽管有int()
和bin()
转换,我仍然收到一个错误,说&
不能用于'str'和'int'。
据我所知int()
和bin()
函数,用户提供的数字在传递给check_bit4()
函数时应该是位整数。我错过了什么?
def check_bit4(x):
check = 0b00001000
if x & check > 0:
return("on")
else:
return("off")
x = bin(int(input("Enter Integer ")))
check_bit4(x)
^{pr2}$
这是因为bin(x)返回一个字符串
参考号:https://docs.python.org/3/library/functions.html#bin
因此,在上面的行中,您尝试&;(and)字符串和int,这会导致错误。
因此,在使用&;(and)运算符之前,我们需要将字符串转换为int。
我建议您直接在输入数字上使用&;(and)运算符,而不是这些繁琐的任务。在
我希望这能解决您的问题:)
没有理由使用
bin(..)
。bin(..)
不把整数转换成二进制等价的,int已经存储为二进制。它构造了一个整数的表示(这是一个人可以读取的东西),并将0和1作为字符串。事实上:因此,您可以简单地使用:
^{pr2}$在你的函数中,你写了
0b00001000
,但这也是一个整数:如果你直接写8
,那就没什么区别了。在相关问题 更多 >
编程相关推荐