题号:NC308598
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述

对于给定的

位无符号整数

,你需要书写一个程序,使得其能够支持如下操作:

操作一:整体左移,将整数

二进制表示下的所有位向左移动

位后,输出得到的十进制整数,超出

位的高位丢弃,低位补

;

操作二:整体右移,将整数

二进制表示下的所有位向右移动

位后,输出得到的十进制整数,溢出的低位丢弃,高位补

;

操作三:按位赋

,将整数

二进制表示下的第

位(以右侧为低位,从

数起)赋值为

,输出得到的十进制整数;

操作四:按位赋

,将整数

二进制表示下的第

位(以右侧为低位,从

数起)赋值为

,输出得到的十进制整数。
输入描述:
每个测试文件均包含多组测试数据。第一行输入一个整数
代表数据组数,每组测试数据描述如下:
在一行上输入三个整数
,表示操作类型、初始整数、操作参数。操作类型对应上述四种操作。
输出描述:
对于每组测试数据,新起一行输出一个整数,表示操作后的结果。