PTA 位运算
给定一个数,将该数的某二进制位上置0、置1或取反。
输入格式:
第1行:输入一个十进制整数。(32位int取值范围,其二进制数补码表示)
第2行后:每行输入一个位操作运算要求。
格式:输入位操作运算类型(1表示置0,
2表示置1
,3表示按位取反
) 位数(从最低位向高位,范围从0~31
)
最终以键盘输入^Z
或 文件结束(EOF标志)。
输出格式:
输出位运算后的整数值。
输入样例:
在这里给出一组输入。例如:
3
1 0
1 1
2 3
3 1
3 2
2 0
输出样例:
在这里给出相应的输出。例如:
15
#include <bits/stdc++.h>using namespace std;
typedef long long ll;
const ll N = 2e5 + 10;
ll n, m, T;
ll op, id;int main() {cin >> n;while (cin >> op >> id) {if (op == 1) n &= ~(1 << id);else if (op == 2) n |= (1 << id);else n ^= (1 << id);}cout << n << endl;
}