Даны целые числа a
и k. Выведите число, которое
получается из a сбросом значения k-го бита в 0. Младший бит имеет номер
0.
Вход. Два
числа a и k (0 ≤ a ≤ 109).
Выход. Выведите число a
с обнулённым k-ым битом.
14 1
12
элементарная задача – битовые операции
Значение 1 << k содержит единицу в k-ом бите, а во всех остальных битах
нули. Тогда отрицание этого выражения, то есть ~(1 << k) содержит ноль в k-ом бите, а во всех остальных битах единицы. Осталось найти
побитовый and значения a и ~(1
<< k).
Читаем
входные данные. Вычисляем и выводим ответ.
scanf("%d %d",&a,&k);
res = a &
~(1 << k);
printf("%d\n",res);
import java.util.*;
public class
Main
{
public static void
main(String[] args)
{
Scanner con = new
Scanner(System.in);
int a =
con.nextInt();
int k =
con.nextInt();
int res = a
& ~(1 << k);
System.out.println(res);
}
}