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

Tìm số có XOR với số cho trước lớn nhất C++


Cho số X (giả sử 8 bit). Tìm số Y sao cho X ^ Y lớn nhất. XOR cho kết quả lớn nhất khi các bit khác nhau. Do đó Y = bitwise NOT của X (trong 8 bit) = 255 ^ X.

Ví dụ mã nguồn

#include <bits/stdc++.h>
using namespace std;

int maxXORPartner(int X) {
    return ((1 << 8) - 1) ^ X; // 255 ^ X
}

int main() {
    int X = 4; // 00000100
    cout << maxXORPartner(X); // 251 (11111011)
    return 0;
}

Kết quả

251

4 ^ 251 = 255 (giá trị lớn nhất 8 bit).