numpy 비트 연산자의 우선 순위는 무엇입니까 & 및 | ?Numpy bitwise operator priority?
내가 할 경우
a & b | c
그것은 어떤 표현을 평가합니까? a & (b | c)
? (a & b) | c
?
나는 또한 NOT 가정
a | b & c
에 대해 (~) 가장 높은 우선 순위를 가지고 있습니까?
numpy 비트 연산자의 우선 순위는 무엇입니까 & 및 | ?Numpy bitwise operator priority?
내가 할 경우
a & b | c
그것은 어떤 표현을 평가합니까? a & (b | c)
? (a & b) | c
?
나는 또한 NOT 가정
a | b & c
에 대해 (~) 가장 높은 우선 순위를 가지고 있습니까?
인터넷 연결이 끊어졌을 때 사용할 수있는 기술입니다. 많은 질문에 적용 할 수 있습니다. 기술에 대한 구어체 설명은 "빨아서 보아라".
>>> from itertools import product
>>> list(product(range(2), repeat=3))
[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)]
>>> all((a & b | c) == ((a & b) | c) for a, b, c in product(range(2), repeat=3))
True
>>> all((a & b | c) == (a & (b | c)) for a, b, c in product(range(2), repeat=3))
False
this section of the documentation 및 this page (thanks @ F.J.)을 참조하십시오.
우선 순위는 :
~
)&
)^
)|
)이 의미 :
a & b | c == (a & b) | c
a | b & c == a | (b & c)
[this] (http://docs.python.org/reference/expressions.html#summary)에 따르면'^'는'|'보다 우선 순위가 높습니다. 증명하기 쉽다.'1 | 2^3! = (1 | 2)^3'. –
잘 잡습니다. 나는 편집을했다. – Benjamin
+1 사람들이 종종 간과하는 접근 방식을 제시합니다. – prelic
나는 확실히 시도하고 접근을 좋아한다. 첫 번째 진술이 사실이라면 두 연산자가 여전히 같은 우선 순위를 가질 수 있기 때문에 '(a | b & c) == ((a | b)')와 반대 연산자를 확인하는 것이 좋습니다. c)'. false이기 때문에'&'는'|'보다 더 높은 우선 순위를가집니다. 그러나'+'와'-' 같은 연산자는 같은 우선 순위를가집니다. –