Применение побитовых операторов в PHP и Javascript?

Всем известно о наличии побитовых операторов (&, |, ^, >>, << и т.п.) в наиболее популярных языках веб-программирования (в PHP и Javascript они точно есть!). В книжках тоже о них всегда пишут, потому что они есть и без них книжка будет неполной. А теперь вопрос: какие примеры применения этих операторов в задачах веб-программирования вы знаете?


P.S. По этой теме в Q&A нашел только это: habrahabr.ru/qa/813/
  • Вопрос задан
  • 5139 просмотров
Пригласить эксперта
Ответы на вопрос 5
@korvindest
Ну например, если вам надо реализовать алгоритм поиска решения делением отрезка пополам, то эффективнее использовать сдвиг вправо, а не деление на 2.

Кроме этого побитовые операторы актуальны при работе с цветом RGB если все три (или 4) составляющих хранятся в одном int.

Еще можно вспомнить про перевод в двоичную и шестнадцатеричную систему исчисления для удобного представления id сессии или чего то подобного.
Ну это как примеры…

Естественно все это нужно, только в тех случаях, когда нету готовых функций встроенных в язык.
Ответ написан
Комментировать
Для использования флагов используются битовые операции. Взять хотя бы ошибки. Надо выставить все ошибки, кроме depricated, то пишем:
E_ALL & ~E_DEPRECATED.
Ответ написан
Aco
@Aco
Заклинатель кода
У меня в проекте есть объект имеющий 42 различных состояния, на подобии сброшен, завершился с ошибкой, процессе того, в процессе сего… и т.д. На каждое состояние выделен 1 бит, таким образом все возможные состояния вмещаются в одно свойство объекта. Так вот, есть много мест где мне надо решать что делать опираясь на эти флаги, для примера сравните 2 куска кода.
if($this->_sock && !empty($this->_opts["keep-alive"]) && $this->_is_opened && $this->_step == "proceed") {
}

или
if($this->_state & self::CAN_PROCEED) {
}

таким образом можно вместо кучи свойств и проверок ключей у массивов/объектов делать одну битовую операцию
Ответ написан
mark_ablov
@mark_ablov
Например можно не заводить 32 булевых поля в mysql, а «упаковать» всё в один int.
Ответ написан
А еще как пример с web душком это получение параметров Google PR.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
от 40 000 до 60 000 ₽
20 апр. 2024, в 13:56
7000 руб./за проект
20 апр. 2024, в 13:52
7000 руб./за проект
20 апр. 2024, в 13:23
1000 руб./за проект