【发布时间】:2022-01-15 09:11:10
【问题描述】:
我最近一直在做代码战挑战,偶然发现了这个:使用管道符号添加两个项目。我在我的 python 环境中尝试过这个,很好奇它的作用以及它与 + 符号有何不同。
print(5 | 2)
这当然输出到 7。在我正在查看的代码战问题中,其中一个解决方案使用它来将两个集合相加。这是什么意思?
【问题讨论】:
我最近一直在做代码战挑战,偶然发现了这个:使用管道符号添加两个项目。我在我的 python 环境中尝试过这个,很好奇它的作用以及它与 + 符号有何不同。
print(5 | 2)
这当然输出到 7。在我正在查看的代码战问题中,其中一个解决方案使用它来将两个集合相加。这是什么意思?
【问题讨论】:
| 是按位或。在你的例子中,它发生了:
0101
0010 |
---
0111
二进制是 7。
如果要计算,例如5 | 9。你会得到 13,而不是 14,因为 | 不是 +。
附注:如果您将| 应用于按位与返回 0 的两个数字,则加法和按位或返回相同的结果。
对于 2 和 5,2 & 5 = 0,所以 + 和 | 返回相同的结果。
【讨论】:
{1,2} | {3} == {1,2,3}