Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Заданы два числа
a
и
n
. Проверить, присутствует ли в записи числа
a
n
-й бит. В данной задаче биты нумеруются с единицы.
Формат ввода
Входные данные содержат два целых числа
a и n (0≤a≤1018, 1≤b≤32).
Формат вывода Выведите 1, если в записи числа a присутствует n-й бит, и 0 в противном случае.
Пример 1
Ввод Вывод1
6
0
Пример 2
Ввод Вывод1
6 2
Язык с++
Например вот эта функция, вернёт k-ый бит в числе number. Который соответсвенно, либо 0, либо 1
unsigned get_bit(unsigned k, int number) {
return ((unsigned)number & (1U << k)) > 0;
}
Объяснить это можно так
(1 << k) сдвигает биты в числе 1. k-раз влево. В результате мы получили число, в котором есть все 0, кроме позиции k, куда перемещается наш 1.
оператор & является побитовым И. Таким образом, каждый 0 будет равен 0 в нашем исходном n-ном числе на всех позициях, кроме k. Будет этот бит k от исходного числа как 0&1 = 0 и 1&1 = 1.