Trong bài viết này, chúng ta sẽ thảo luận về một chương trình để tìm tính chẵn lẻ của một số N.
cho trước.Tính chẵn lẻ được định nghĩa là số bit đặt (số ‘1’) trong biểu diễn nhị phân của một số.
Nếu số ‘1’s trong biểu diễn nhị phân là chẵn, thì chẵn lẻ được gọi là chẵn lẻ và nếu số‘ 1’s trong biểu diễn nhị phân là lẻ, chẵn lẻ được gọi là chẵn lẻ.
Nếu số đã cho là N, chúng ta có thể thực hiện các phép toán sau.
- y =N ^ (N>> 1)
- y =y ^ (y>> 2)
- y =y ^ (y>> 4)
- y =y ^ (y>> 8)
- y =y ^ (y>> 16)
Khi tất cả các thao tác này được thực hiện xong, bit ngoài cùng bên phải của y sẽ đại diện cho tính chẵn lẻ của số. Nếu bit là 1, chẵn lẻ sẽ là số lẻ và nếu bit là 0, chẵn lẻ sẽ là chẵn.
Ví dụ
#include <bits/stdc++.h> using namespace std; bool calc_parity(int N) { int y; y= N ^ (N >> 1); y = y ^ (y >> 2); y = y ^ (y >> 4); y = y ^ (y >> 8); y = y ^ (y >> 16); //checking the rightmost bit if (y & 1) return 1; return 0; } int main() { int n=1345; int result = calc_parity(n); if(result==1) cout << "Odd Parity" << endl; else cout << "Even Parity" << endl; return 0; }
Đầu ra
Even Parity