Что означает «Оператор» в 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
Удачи!
Деннис М.
Это оператор двоичного сдвига:
<<
Побитовый сдвиг влево. Эта операция сдвигает биты левого операнда влево на несколько позиций, равных правильному операнду, вставляя неустановленные биты в сдвинутые позиции.
>>
Побитовый сдвиг вправо. Эта операция сдвигает биты левого операнда вправо на несколько позиций, равных правильному операнду, вставляя беспорядочные биты в сдвинутые позиции.
ПРИМЕЧАНИЕ. Интересно также отметить, что эти два варианта обеспечивают простой (и очень быстрый) способ умножения / деления целых чисел на две. Например: 1 << 5 даст 32 в результате …….
Легкий трюк, чтобы получить результат операции сдвига влево, например
15 << 2 = 15 * (2 * 2) = 60
15 << 3 = 15 * (2 * 2 * 2) = 120
15 << 5 = 15 * (2 * 2 * 2 * 2 * 2) = 480
и так далее..
Так что это:
(число слева), умноженное на (число справа) раз 2.
То же самое касается оператора сдвига справа (>>), где:
(число слева), деленное на (число справа) раз 2