2014-10-14 2 views
-1

위의 표현이 파이썬에서 무엇을 의미하는지 모르겠습니다. 일부 Google 검색을했지만 아직 아무것도하지 않았습니까? l 값은 12입니다.파이썬에서 l = (2 << 2 | 3 << 2)의 의미

감사합니다.

+0

개별 운영자의 의미를 알고 있습니까? – usr2564301

+0

비트 연산, 그들에 대해 읽어보십시오. – Maroun

+3

@ user3001408 이들은 파이썬 연산자 목록에서 설명하기 때문에 (예 : Google hit : http://www.tutorialspoint.com/python/python_basic_operators.htm)? – jonrsharpe

답변

1

이것은 단순히 비트 그들은 비트 단위 작업입니다

2 << 2 # shift 2 which is 0b00010 left by two positions 

3 << 2 # shift 3 which is 0b00011 left by two positions 

(2 << 2 | 3 << 2) take OR of these values 
+0

* 연산자 우선 순위 *에 대한 정보도 추가 할 수 있습니다. – usr2564301

8

을 의미 사업자 및 바이너리 또는를 이동한다. (Binary bitwise operations, Shifting operations)

숫자를 이진수로 나타내면 이해하기가 쉽습니다.

>>> bin(2) 
'0b10' 
>>> bin(3) 
'0b11' 
>>> bin(2 << 2) # << : Shift left 
'0b1000' 
>>> bin(3 << 2) 
'0b1100' 
>>> bin(2 << 2 | 3 << 2) 
'0b1100' 

>>> int('1100', 2) 
12 
+1

2 << 3은 질문에 없습니다. – recursive

+0

@ 재귀 적으로, 그것을 고칠 기회를 주셔서 감사합니다. 이에 따라 수정되었습니다. – falsetru