#include <iostream>
using namespace std;
#define int long long
const int P=(1LL<<12)-1;//构造12位最大十进制数
signed main() {
int T;
cin >> T;
int ans;
while (T-- > 0) {
int o, x, p;
cin >> o >> x >> p;
switch(o){
case 1:ans=(x<<p)&P;break;//保证是12位以内
case 2:ans=x>>p;
if(p>0){
int mask=(1<<(12-p))-1;//构造掩码
mask=(~mask)&P;//取反码补高位1
ans|=mask;
}break;
case 3:ans=x&(~(1<<p));break;
case 4:ans=x|(1<<p);break;
}
ans&=P;//保证结果在12位以内
cout << ans << endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")

京公网安备 11010502036488号