在C ++中高效地找到数字的奇偶校验

在本教程中,我们将编写一个找到数字奇偶校验的程序。

通过使用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

以上是 在C ++中高效地找到数字的奇偶校验 的全部内容, 来源链接: utcz.com/z/334543.html

回到顶部