Trong bài toán này, chúng ta được cho hai giá trị nguyên. Nhiệm vụ là viết chương trình C++ thực hiện phép toán: Với mỗi bit set của số thứ nhất, đảo bit tương ứng của số thứ hai.
Ví dụ minh họa
Input: 3 7 Output: 4 Nhị phân của 3: 011 Nhị phân của 7: 111
Bit đầu tiên và bit thứ hai của số thứ hai bị đảo, biến nó thành 100 tức là 4.
Phương pháp giải
Một cách tiếp cận để giải quyết bài toán là thực hiện phép XOR của hai số. Kết quả sẽ đảo bit ở những vị trí mà bit của số thứ nhất bằng 1 nhờ phép XOR.
Ví dụ chương trình
Chương trình minh họa hoạt động của giải pháp:
#include <bits/stdc++.h>
using namespace std;
int main(){
int a = 3, b = 7;
cout << "Hai số là " << a << " & " << b << endl;
cout << "Kết quả sau khi đảo bit là " << (a ^ b);
return 0;
}
Kết quả
Hai số là 3 & 7 Kết quả sau khi đảo bit là 4