Что означает < Оператор означает в php?
Пример:
$t = 5;
$foo = 1 << ($t);
echo($foo);
echo производит: 32
Спасибо
Что означает < Оператор означает в php?
Пример:
$t = 5;
$foo = 1 << ($t);
echo($foo);
echo производит: 32
Спасибо
Это оператор побитового сдвига. В частности, оператор сдвига слева. Он принимает левый аргумент и сдвигает двоичное представление слева на количество бит, заданных правым аргументом, например:
1 << 2 = 4
потому что 1 (десятичный) равен 1 (двоичный); сдвиг влево дважды делает его 100
, который 4
десятичным.
1 << 5 = 32
потому что 100000
в двоичном формате 32
в десятичной форме.
Сдвиг вправо ( → ) делает то же самое, но направо.
"< <" бит-сдвиг влево. Пожалуйста, просмотрите побитовые операторы PHP. http://php.net/manual/en/language.operators.bitwise.php
Более подробное объяснение:
Это означает умножение на два, потому что оно работает на двоичном уровне. Например, если у вас есть номер 5 в двоичном формате
0101
и вы смещаете бит влево один раз (переместите каждый бит в одну позицию)
1010
тогда ваш результат равен 10. Работа с двоичным (справа налево) равна 2 ^ 0, 2 ^ 1, 2 ^ 2, 2 ^ 3 и т.д. Вы добавляете соответствующую мощность в два, если вы видите 1. Итак, наша математика для нашего нового результата выглядит следующим образом:
0 + 2^1 + 0 + 2^3
0 + 2 + 0 + 8 = 10
Удачи!
Деннис М.
Это оператор двоичного сдвига:
Легкий трюк, чтобы получить результат операции сдвига влево, например
15 < 2 = 15 * (2 * 2) = 60
15 < 3 = 15 * (2 * 2 * 2) = 120
15 < 5 = 15 * (2 * 2 * 2 * 2 * 2) = 480
и т.д.
Итак, это:
(число слева), умноженное на (число справа) раза 2.
То же самое относится к оператору правого сдвига ( → ), где:
(число слева), деленное на (число справа) раз 2
<<
Побитовый сдвиг влево. Эта операция сдвигает бит левых операндов
слева на несколько позиций, равных правильному операнду,
вставка неустановленных битов в сдвинутые позиции.
>>
Побитовый сдвиг вправо. Эта операция сдвигает бит левых операндов
справа на несколько позиций, равных правильному операнду,
вставка неустановленных битов в сдвинутые позиции.
ПРИМЕЧАНИЕ. Также интересно отметить, что эти два варианта обеспечивают легкий (и очень быстрый) способ умножить/делить целые числа на две. Например: 1 < 5 даст 32 в результате.