“|”有什么区别和“+”?
What is the difference between "|" and "+"?
我最近一直在做 codewars 挑战,偶然发现了这个:使用管道符号添加两个项目。我在我的 python 环境中尝试了这个,很好奇它的作用以及它与 + 符号有何不同。
print(5 | 2)
这当然输出到 7。在我正在查看的 codewars 问题中,其中一个解决方案使用它来将两个集合加在一起。这是什么意思?
|
是按位或。在您的示例中,碰巧是:
0101
0010 |
---
0111
二进制为7。
如果你要计算,例如5 | 9
。你会得到 13,而不是 14,因为 |
不是 +
。
旁注:如果您将 |
应用于按位与 returns 0 的两个数字,则加法和按位或 returns 的结果相同。
在2和5的情况下,2 & 5 = 0
,所以+
和|
returns结果相同
我最近一直在做 codewars 挑战,偶然发现了这个:使用管道符号添加两个项目。我在我的 python 环境中尝试了这个,很好奇它的作用以及它与 + 符号有何不同。
print(5 | 2)
这当然输出到 7。在我正在查看的 codewars 问题中,其中一个解决方案使用它来将两个集合加在一起。这是什么意思?
|
是按位或。在您的示例中,碰巧是:
0101
0010 |
---
0111
二进制为7。
如果你要计算,例如5 | 9
。你会得到 13,而不是 14,因为 |
不是 +
。
旁注:如果您将 |
应用于按位与 returns 0 的两个数字,则加法和按位或 returns 的结果相同。
在2和5的情况下,2 & 5 = 0
,所以+
和|
returns结果相同