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).