程序设计实习 02 第i位替换
#include <iostream> //n 的第i位替换为m的第i位 using namespace std; int bitManipulation1(int n, int m, int i) { return ((m>>i)&1) == 1? (n|(1<<i)) : (n&(~(1<<i))); //注意格式 } int main() { int n, m, i, t; cin >> t; while (t--) { cin >> n >> m >> i; cout << bitManipulation1(n, m, i) << endl; } return 0; }
#include <iostream> // n的第i位取反 using namespace std; int bitManipulation2(int n, int i) { return (n>>i)&1 ==1? (n&(~(1<<i))) : (n|(1<<i)); } int main() { int t, n, i; cin >> t; while (t--) { cin >> n >> i; cout << bitManipulation2(n, i) << endl; } return 0; }
#include <iostream> //左边i位取反 using namespace std; int bitManipulation3(int n, int i) { return ((~0)<<(32-i))^n; } int main() { int t, n, i; cin >> t; while (t--) { cin >> n >> i; cout << bitManipulation3(n, i) << endl; } return 0; }