Содржина на објавата
Как проверить является ли число чётным или нечётным? Конечно же оператор "остаток от деления" is_odd = bool(x%2) Если остаток от деления равен 0 то это чётное число, если 1 то нечётное. Но есть еще альтернативный способ, это битовый оператор AND is_odd = bool(x&1) Как это работает? Распечатайте ряд целых чисел в двоичном формате >>> for i in range(0, 7): >>> print(bin(i)) 0b0 0b1 0b10 0b11 0b100 0b101 0b110 Можно заметить, что последние биты чередуются между 0 и 1. А что делает оператор AND (&)? Он возвращает 1 если оба бита числа имеют значение 1. Учитывая, что у числа 1 в двоичном представлении только один бит равен 1, и он последний, то все остальные биты от любого числа всегда будут возвращать 0. Таким образом, делая операцию AND любого числа с числом 1 мы всегда получим либо число 0 либо число 1. Это будет зависеть от последнего бита другого операнда. Выглядит это примерно так >>> 38 & 1 0 00100110 & 00000001 = 00000000 >>> 227 & 1 1 11100011 & 00000001 = 00000001 #tricks