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