2014-10-14 3 views
-1

Я не уверен, что означает вышеуказанное выражение в Python. Был ли какой-то поиск Google, но все еще ничего. Значение l равно 12.Значение l = (2 << 2 | 3 << 2) в Python

Цените свою помощь.

+0

Вы знаете, что означают отдельные операторы? – usr2564301

+0

побитовые операции, читайте о них. – Maroun

+3

@ user3001408, потому что они объясняются в любом списке операторов Python (например, сначала Google ударил: http://www.tutorialspoint.com/python/python_basic_operators.htm)? – jonrsharpe

ответ

1

Это просто немного операторов сдвига и бинарный OR, означающих

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

Они побитовая операция. (, 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

@recursive, Спасибо, что дал мне возможность исправить это. Исправлено. – falsetru

Смежные вопросы