Уровень сложности: Новичок
При заданном числе n и значении k поворот k-го бита в n.
Примеры:
Input: n = 15, k = 1 Output: 14 Input: n = 15, k = 2 Output: 13 Input: n = 15, k = 3 Output: 11 Input: n = 15, k = 4 Output: 7 Input: n = 15, k >= 5 Output: 15
Идея состоит в том, чтобы использовать побитовые операторы <<, & и ~. Используя выражение ~ (1 << (k — 1)) , мы получим число, в котором установлены все биты, кроме k-го бита. Если мы выполним битовое выражение & этого выражения с n, мы получим число, которое имеет все биты такие же, как n, кроме k-го бита, который равен 0.
Ниже приведена реализация вышеуказанной идеи.
|
Джава
|
python3
|
C #
|
PHP
|
Выход:
7
Упражнение: Напишите функцию turnOnK (), которая включает k-й бит.
Эта статья пополняемая Рахул Джейна. Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме
Рекомендуемые посты:
- Как включить определенный бит в номере?
- Отключить крайний правый бит
- Подсчет числа конечных нулей в двоичном представлении числа с использованием Bitset
- Максимизируйте заданное число без знака, меняя биты в крайних положениях.
- Найти число, которое дает минимальную сумму, когда XOR с каждым номером массива целых чисел
- Проверьте, имеет ли двоичное представление числа равное число 0 и 1 в блоках
- Задав число в виде строки, найдите количество смежных подпоследовательностей, которые рекурсивно складываются до 9 | Набор 2
- Задав число в виде строки, найдите количество смежных подпоследовательностей, которые рекурсивно складываются в 9
- Количество способов разбить двоичное число таким образом, чтобы каждая часть делилась на 2
- Построить наименьшее число, удалив n цифр из данного числа
- Минимальное количество данных степеней 2, необходимое для представления числа
- Количество ведущих нулей в двоичном представлении заданного числа
- Двоичное представление следующего большего числа с тем же числом 1 и 0
- Минимизируйте количество замен, чтобы получить строку с одинаковыми номерами 'a', 'b' и 'c'
- Максимальное количество разбиений двоичного числа
0.00 (0%) 0 votes