Условие
Даны два числа N и K. Требуется изменить число N так, чтобы в его двоичном представлении K младших разрядов были равны 0, а все остальные разряды остались неизменными.
В задаче запрещено использовать арифметические операции +, -, *, / и %, а также операторы if / switch и тернарную операцию.
Формат входных данных
В одной строке вводятся два целых числа N и K (1 ⩽ K ⩽ 30, 0 ⩽ N < 231). Разряды нумеруются от младшего к старшему начиная с нуля.
Формат выходных данных
Требуется вывести одно целое число — ответ на задачу.
входные данные
1023 5
1024 5
выходные данные
992
1024
1.всего пикселей 128*128= 2^14(2 в 14-ой степени)
так как 32 цвет, то один символ кодируется 5 битами (log2(32), если бы было 33 цвета то уже бы потребовалось 6 бит, так как 5 бы не хватило).
Нам нужно в килобайтах значит нужно разделить на 2^13 (т.к. в 1 кбайте 2^13 бит)
(2^14*5)/2^13=10 кбайт
2) (64*128*7)/2^13=(2^13*7)/2^13=7 кбайт
3)(64*256*8)/2^13= 2^17/2^13=2^4=16 кбайт
4)(32*1024*7)/2^13=(2^15*7)/2^13=4*7=28 кбайт
5)(1024*512*6)/2^13=(2^19*6)/2^13=64*6=384 кбайт
6)(512*256*5)/2^13=(2^17*5)/2^13=16*5=80 кбайт
7)(512*128*4)/2^13=2^18/2^13=2^5=32 кбайт
8)(256*128*3)/2^13=(2^15*3)/2^13=4*3=12 кбайт
9)(128*128*8)/2^13=2^17/2^13=2^4=16 кбайт
10)(24*2^13)/(128*256)=2^16*6/2^15=2*3=6 бит, значит 64 цвета
11)(10*2^13)/(128*128)=2^14*5/2^14=5 бит, значит 32 цвета
12)(7*2^13)/(64*128)=(7*2^13)/2^13=7 бит, значит 128 цветов
13)(16*2^13)/(64*256)=2^17/2^14=2^3=8 бит, значит 256 цветов
14)(28*2^13)/(32*1024)=7*2^15/2^15=7 бит, значит 128 цветов
15)(384*2^13)/(1024*512)=(3*2^20)/2^19=3*2=6 бит, значит 64 цвета
16)(80*2^13)/(512*256)=(5*2^17)/2^17=5 бит, значит 32 цвета
17)(32*2^13)/(512*128)=2^18/2^16=2^2=4 бита, значит 16 цветов
18)(12*2^13)/(256*128)=(3*2^15)/2^15=3 бита, значит 9 цветов
19)(16*2^13)/(128*128)=2^17/2^14=2^3=8 бит, значит 256 цветов (Каждый раз возводим в квадрат кол-во бит)