Битовая операция в PHP?

Данный код проверяет, число на четность.

Как работает данная проверка?

<?= (! (4 & 1)) ? 'Четное' : 'Нечетное'; ?>
  • Вопрос задан
  • 2428 просмотров
Решения вопроса 1
RiseOfDeath
@RiseOfDeath
Диванный эксперт.
По порядку следования:
4 & 1 - побитовое "И" с единицей (надеюсь знаете что такое битовые операции?). В примере с числом 4 (тут длинна числа не важна, по этому пусть в моем примере оно будет восьмибитным) - 0000 0100 & 0000 0001 = 0000 0000 Если число четное - его младший разряд будет равен нулю, иначе единице, а побитовое сравнение с единицей даст 1 (истина) если число было не четным (в младшем разряде была единица) или 0 (ложь), если четным (в младшем разряде ноль).

Ну и далее просто инверсия. (ведь мы проверяем число на четность, а не на НЕчетность) чисто для логичности. Ибо нам нужна истина если число четное, а не наоборот.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы