#25. 位运算
位运算
问题描述
对于一个整数,在计算机中是由二进制表示成的,从右往左依次从低位到高位,最右边是第 位。
例如 ,其在计算机中的二进制为 ,原理为 。
现在给定 个整数 和 次操作,操作具体为:
1 x
:输出 第 位的值是 还是 ,例如 的第 位值是 。
2 l r
:将 第 位到第 位的值按位取反,然后输出 的值。
3 l r
:将 第 位到第 位设置为 ,然后输出 的值。
4 l r
:将 第 位到第 位设置为 ,然后输出 的值。
5
:输出该整数二进制中最后一个 所代表的值,例如 你需要输出 , 你需要输出 ,如果不存在 输出 。
对于每次操作,你是否可以做到 ,而并非是 ?
输入格式
第一行输入两个正整数 。 ()
接下来 行,输入为其中 种:
1 x
:输出 第 位的值,例如 的第 位值是 。
2 l r
:将 第 位到第 位的值按位取反,然后输出 的值。
3 l r
:将 第 位到第 位设置为 ,然后输出 的值。
4 l r
:将 第 位到第 位设置为 ,然后输出 的值。
5
:输出该整数二进制中最后一个 所代表的值,例如 你需要输出 , 你需要输出 ,如果不存在 输出 。
输出格式
对于每次操作,按照题目要求输出。
样例输入1
13 6
1 3
2 1 3
3 1 3
4 1 2
5
2 1 1
样例输出1
1
3
15
9
1
11
样例输入2
37 9
1 3
2 2 3
3 1 4
4 1 3
5
2 1 1
1 4
3 1 4
5
样例输出2
0
41
63
49
1
51
1
63
1
说明
的二进制为 。
第一次操作输出 。
第二次操作后二进制变成 ,输出 。
第三次操作后二进制变成 ,输出 。
第四次操作后二进制操作变成 ,输出 。
第五次操作输出 。
第六次操作后二进制变成 ,输出 。
相关
在下列比赛中: