Много раз, если у вас есть a^b
, информация в a
кодируется в определенных битах.Вы можете XOR с небольшим шаблоном, чтобы изменить эту информацию полезными способами.В основном это битовая маска (статья в википедии здесь ).
Например, допустим, у вас есть 32-разрядное целое число без знака, которое представляет разрешения пользователя.Каждый бит соответствует определенному разрешению.Скажем, 3-й младший значащий бит (3-й справа) представляет, является ли пользователь администратором или нет.Затем, чтобы переключиться, если пользователь является администратором, вы можете сделать что-то вроде этого:
userRoles = userRoles ^ 0b100
или эквивалентно
userRoles = userRoles ^ 8