【发布时间】:2021-04-19 13:21:29
【问题描述】:
考虑以下
>>> a = 10
>>> b = 5
使用+ 或| 将值添加到c 有什么区别?
>>> c = a + b
>>> c
15
>>> c = a | b
>>> c
15
我根据this answer 提出这个问题,其中使用了二进制和按位运算,如果这有什么不同的话。
从上面链接的答案:
>>> mon, tue, wed, thu, fri, sat, sun = (pow(2, i) for i in range(7)) >>> bin(mon) '0b1' >>> bin(sun) '0b1000000' # create range: >>> x = mon | wed | fri >>> bin(x) '0b10101' # check if day is in range: >>> x & mon 1 >>> x & tue 0
【问题讨论】:
-
在
a和b没有重叠位的情况下,什么都没有。5是0101和10是1010,所以按位或和数字加法相等;15是1111。 -
试试
10 | 6,你会得到14。仅在特殊情况下,这两者的结果相等。 -
为什么会使用
|?搜索|符号时我找不到任何东西。还是可以和python中的+互换? -
刚刚给你一个例子,
a + b != a | b。为什么您认为它们可以互换? -
@chepner 巧合的是,我使用的示例碰巧在每种情况下都导致 15,这引起了我的困惑。我没有看到第二条评论,但答案清楚了
标签: python