Cho một số nguyên. Tìm parity (chẵn/lẻ) của số bit 1 trong biểu diễn nhị phân của nó.
Ví dụ minh họa (C++)
#include <bits/stdc++.h>
#define bool int
using namespace std;
bool getParity(unsigned int n) {
bool parity = 0;
while (n) {
parity = !parity;
n = n & (n - 1); // xóa bit 1 thấp nhất
}
return parity;
}
int main() {
unsigned int n = 7;
cout << "Parity of no " << n << ": " << (getParity(n) ? "Odd" : "even");
getchar();
return 0;
}
Đầu ra
Parity of no 7: odd