python中的位运算不符合预期
a1 = 0b0101
b1 = 0b1010
print(a1 and b1)
a2 = 5
b2 = 10
print(a2 and b2)
10
10
根据我的理解,a2 and b2应该是先把a2、b2转换成二进制(也就是a1、b1),再进行位运算,运算结果也确实是一样的,都是10.
但是这个结果我不知道怎么出来的。a1 and b1的结果不应该是0000吗?
and是逻辑与,相当于c语言里的&&
算术与就是&
你应该写a&b
a2 and b2 等价于 b2, a1 and b1 等价于 b1