Я понимаю, что побитовые операции необходимы для многоуровневого программирования, такого как запись драйверов устройств, низкоуровневая графика, сборка и декодирование пакетов протокола связи. Я занимаюсь PHP уже несколько лет, и я редко видел побитовые операции в PHP-проектах.
Можете ли вы привести примеры использования?
Вы можете использовать его для битмасков для кодирования комбинаций вещей. В принципе, это работает, давая каждому бит смысл, поэтому, если у вас есть 00000000
, каждый бит представляет что-то, помимо того, что он также является одним десятичным числом. Предположим, у меня есть некоторые предпочтения для пользователей, которых я хочу сохранить, но моя база данных очень ограничена с точки зрения хранения. Я мог бы просто сохранить десятичное число и извлечь из этого, какие предпочтения выбраны, например, 9
– 2^3
+ 2^0
– 00001001
, поэтому у пользователя есть предпочтение 1 и предпочтение 4.
00000000 Meaning Bin Dec | Examples │││││││└ Preference 1 2^0 1 | Pref 1+2 is Dec 3 is 00000011 ││││││└─ Preference 2 2^1 2 | Pref 1+8 is Dec 129 is 10000001 │││││└── Preference 3 2^2 4 | Pref 3,4+6 is Dec 44 is 00101100 ││││└─── Preference 4 2^3 8 | all Prefs is Dec 255 is 11111111 │││└──── Preference 5 2^4 16 | ││└───── Preference 6 2^5 32 | etc ... │└────── Preference 7 2^6 64 | └─────── Preference 8 2^7 128 |
дальнейшее чтение
Побитовые операции чрезвычайно полезны в информации учетных данных. Например:
function is_moderator($credentials) { return $credentials & 4; } function is_admin($credentials) { return $credentials & 8; }
и так далее…
Таким образом, мы можем сохранить простое целое число в одном столбце базы данных, чтобы иметь все учетные данные в системе.