@evilelf
Тупой, руки из жопы, кодю за зп и т.п. и т.д.

Что такое & в условии?

Что такое & в условии, например

$p = 3;
var_dump($p & 2); // 2

$p = 1;
var_dump($p & 2); // 0

$p = 44;
var_dump($p & 2); // 0
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
Комментировать
Пригласить эксперта
Ответы на вопрос 2
mad_maximus
@mad_maximus
Комментировать
xEpozZ
@xEpozZ
Веб-разработчик
& - это побитовое умножение.
А если еще проще (хотя вряд ли), то это "поиск пересечения коллекций двух битов"
Из теории мы знаем, что все числа в компуктерах представлены в двоичной форме.
3 - это 0011
1 - это 0001
44 - это 0100 0100
Теперь вернемся к вопросу: что делает побитовое умножение?
В школе противные училки математики заставляли умножать числа в столбик. Выглядело это так:
_______________12
(умножить на)
________________3
_________________
Сначала мы умножаем 2 на 3, получаем 6, потому умножаем 10 на 3, получаем 30. Записывали это так:
___________________
________________6
_______________30
_________________
_______________36
Здесь логика схожа. Берем бинарное представление чисел и умножаем. Но не в перекресной форме, как делали это в математике, а "по-разрядно"
Тэкс. 3 - это 11, 2 - это 10, 1 это 01
"Умножаем" 3 на 2
11
10
__
10
Получили 10 в двоичной форме, что приравнивается "2" в десятичной. Идем дальше.
1 умножаем на 2:
01
10
__
00
"00" - это ноль. Ну ничего, попробуем другое число - 44. Умножаем 44 на 2
01000100
00000010
___________
00000000
Опять ноль :(
Если будет число 46, то бинарное представление будет 0100 0110, и результат будет "2"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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