有人能解释一下这些二元运算符是如何在整数列表之间工作的吗
inputA = [1, 3, 4]
inputB = [2, 3, 4]
for i in range(len(inputA)):
print(inputA[i] & inputB[i])
print(inputA[i] | inputB[i])
print(inputA[i] ^ inputB[i])
print("$$$$$$$$$$$$")
结果令人困惑
0
3
3
$$$$$$$$$$$$
3
3
0
$$$$$$$$$$$$
4
4
0
$$$$$$$$$$$$
按位运算符比较数字的位表示。例如,让我们看一下每个列表的第一个数字:1 和 2。1 的位表示形式为 01,而 2 的位表示形式为 10。现在我们可以应用按位运算符。让我们首先看一下 &:它只是简单地将两个数字的各个位与一个 and 进行比较。所以01和10变成了00,这就解释了结果0。现在我们看|,也就是按位或。它的工作方式仅与 or 相同。所以01和10变成11,也就是3的位表示。最后一个字符^是异或。它作为一个或,但不是两个,所以 0^1 和 1^0 是 1 但 1^1 是 0。所以 01 ^ 10 也变成 11,也就是 3。现在你可以尝试自己推导最后两次迭代.