在两个整数列表上按位与

问题描述 投票:0回答:1

有人能解释一下这些二元运算符是如何在整数列表之间工作的吗

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
$$$$$$$$$$$$
python-3.x bitwise-operators
1个回答
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。现在你可以尝试自己推导最后两次迭代.

© www.soinside.com 2019 - 2024. All rights reserved.