#B4061. 位运算 2

位运算 2

题目描述

给定正整数 aa 和整数 bb。我们定义正整数 aa二进制的第 bb 为将 aa 转化为二进制后,从右往左数的第 bb 位,且规定最右侧位是第 00 位。

例如,假设 a=11a=11,则对应表如下,此时我们称 1111 的二进制的第 22 位为 00

位数 44 33 22 11 00
对应数位 00 11 00 11

现在需要你依次输出下列 66 个计算结果,一行输出一个整数:

  • a×2ba\times 2^b
  • a÷2ba\div 2^b,除法向下取整;
  • aa 的二进制的第 bb 位;
  • aa 的二进制的第 bb 位设置为 00 后得到的十进制结果;
  • aa 的二进制的第 bb 位设置为 11 后得到的十进制结果;
  • aa 的二进制的第 bb 位取反后得到的十进制结果;

输入格式

输入正整数 aa 和整数 bb

输出格式

输出六行,一行一个整数表示一个问题的答案。

11 2
44
2
0
11
15
15

提示

【样例解释】

a=11a=11 时,11×22=4411\times 2^2=4411÷22=211\div 2^2=2(向下取整)。

1111 的二进制位为下表所示:

位数 44 33 22 11 00
对应数位 00 11 00 11

1111 的二进制第 22 位为 00,将其设置为 00 后转化为十进制的结果自然也是 1111。而将其设置为 11,则有 (1111)2=(15)10(1111)_2=(15)_{10},即得到的结果是 1515

【数据范围】

数据保证,1a2201\leq a \leq 2^{20}12ba1\leq 2^b \leq a