#2906. 交换位置

交换位置

题目描述

给出一个 int 范围内的 3232 位有符号整数 xx。 我们取出这个 xx 的后 2y2*y 位。

例如,数 x=1314520x=1314520 用二进制表示为 0000,0000,0001,0100,0000,1110,1101,10000000 ,0000 ,0001 ,0100 ,0000 ,1110 ,1101 ,1000

y=4y=4 取出后8位

0000 ,0000 ,0001 ,0100 ,0000 ,1110 ,1101 ,1000

得到1101 ,1000

我们称新得到的前 yy 位为“高位”,后 yy 位为“低位”。将它的高低位交换,我们可以得到一个新的二进制数。输出这个二进制数。

1101 ,1000

交换高低位后得到

1000,1101

输入格式

共有 tt 组测试数据

先输入一个tt

后面tt行每次输入两个整数 x,yx,y

输出格式

对于每组数据输出两个

x后2*y 位的二进制数

变化后的二进制数

样例 #1

样例输入 #1

2
1314520 4
9 2

样例输出 #1

11011000
10001101
1001
0110

数据范围与提示

x 为int 范围内的整数, 如果是负数,取其补码运算

1y12 1 ≤ y ≤ 12

1t5104 1 ≤ t ≤ 5*10^4