Допустим, у меня есть два целых числа со следующими двоичными представлениями:
01101010
00110101
А теперь я хочу скопировать последние 3 бита из первого целого числа во второе так, чтобы оно стало
00110010
Какой самый простой способ сделать это?
(На самом деле, моя цель - сдвинуть все биты X + 1 к правильному, по существу удалив X-й бит и оставить биты X-1 такими же - в этом случае X равен 4)
«Почему?»:
У вас есть куча флагов,
1 = 'permission x'
2 = 'permission y'
4 = 'permission z'
8 = 'permission w'
Вы решаете, что это «разрешение y» больше не требуется в вашей программе, и, таким образом, сдвигаете z и w на верхнюю позицию (делая их 2 и 4 соответственно). Однако теперь вам нужно обновить все значения в вашей базе данных .... (какую формулу вы используете?)