Основные тезисы
1. Python поддерживает следующие логические операторы:
and→ если оба операнда верны, условие истинно, например,(True и True)равноTrue,or→ если какой-либо из операндов истинен, условие истинно, например,(True или False)равноTrue,not→ возвращает false, если результат истинный, и возвращает true, если результат ложный, например,not TrueравноFalse.
2. Вы можете использовать побитовые операторы для манипуляции отдельными битами данных. Следующий пример данных:
x = 15, что равняется0000 1111в двоичном формате,y = 16, что равняется0001 0000в двоичном формате.
будет использоваться для иллюстрации значения побитовых операторов в Python. Проанализируйте приведенные ниже примеры:
&выполняет побитовое и, например,x & y = 0, что равняется0000 0000в двоичном формате,|выполняет побитовое или, например,x | y = 31, что равняется0001 1111в двоичном формате ,˜выполняет побитовое не, например,˜ x = 240*, что равняется1111 0000в двоичном формате,^выполняет побитовое исключающее или, например,x ^ y = 31, что равняется0001 1111в двоичном формате,>>выполняет побитовый сдвиг вправо, например,y >> 1 = 8, что равняется0000 1000в двоичном формате,<<выполняет побитовый сдвиг влево, например,y<< 3 = 128, что равняется1000 0000в двоичном формате,
* -16 (десятичное от дополнения до двух со знаком) - подробнее об операции Дополнительный код.
Упражнение 1
Что выведет следующий фрагмент кода?
x = 1
y = 0
z = ((x == y) and (x == y)) or not(x == y)
print(not(z))
Упражнение 2
Что выведет следующий фрагмент кода?
x = 4
y = 1
a = x & y
b = x | y
c = ~x # tricky!
d = x ^ 5
e = x >> 2
f = x << 2
print(a, b, c, d, e, f)