Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Đảo bit của số khác cho mỗi bit set của một số trong C++


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