在本教程中,我们将编写一个找到数字奇偶校验的程序。
通过使用xor和右移运算符执行以下操作,我们可以有效地找到数字的奇偶校验。
int b; b = n ^ (n >> 1); b = b ^ (b >> 2); b = b ^ (b >> 4); b = b ^ (b >> 8); b = b ^ (b >> 16);
如果结果的最后一位是1,则它是奇校验,否则是奇校验。
让我们看一下代码。
#include <bits/stdc++.h> using namespace std; void findParity(int n) { int b; b = n ^ (n >> 1); b = b ^ (b >> 2); b = b ^ (b >> 4); b = b ^ (b >> 8); b = b ^ (b >> 16); if ((b & 1) == 0) { cout << "Even Parity" << endl; } else { cout << "Odd Parity" << endl; } } int main() { int n = 15; findParity(n); return 0; }
输出结果
如果运行上面的代码,则将得到以下结果。
Even Parity