Оператор PHP <<

Что означает < Оператор означает в php?

Пример:

$t = 5;
$foo = 1 << ($t);
echo($foo); 

echo производит: 32

Спасибо

Ответ 1

Это оператор побитового сдвига. В частности, оператор сдвига слева. Он принимает левый аргумент и сдвигает двоичное представление слева на количество бит, заданных правым аргументом, например:

1 << 2 = 4

потому что 1 (десятичный) равен 1 (двоичный); сдвиг влево дважды делает его 100, который 4 десятичным.

1 << 5 = 32

потому что 100000 в двоичном формате 32 в десятичной форме.

Сдвиг вправо ( → ) делает то же самое, но направо.

Ответ 2

"< <" бит-сдвиг влево. Пожалуйста, просмотрите побитовые операторы 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

Удачи!
Деннис М.

Ответ 4

Легкий трюк, чтобы получить результат операции сдвига влево, например

15 < 2 = 15 * (2 * 2) = 60

15 < 3 = 15 * (2 * 2 * 2) = 120

15 < 5 = 15 * (2 * 2 * 2 * 2 * 2) = 480

и т.д.

Итак, это:

(число слева), умноженное на (число справа) раза 2.

То же самое относится к оператору правого сдвига ( → ), где:

(число слева), деленное на (число справа) раз 2

Ответ 5

<< Побитовый сдвиг влево. Эта операция сдвигает бит левых операндов слева на несколько позиций, равных правильному операнду, вставка неустановленных битов в сдвинутые позиции.

>> Побитовый сдвиг вправо. Эта операция сдвигает бит левых операндов справа на несколько позиций, равных правильному операнду, вставка неустановленных битов в сдвинутые позиции.

ПРИМЕЧАНИЕ. Также интересно отметить, что эти два варианта обеспечивают легкий (и очень быстрый) способ умножить/делить целые числа на две. Например: 1 < 5 даст 32 в результате.