以有效方式查找 C++ 中数字的奇偶校验


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

我们可以通过使用异或右移运算符执行以下操作有效地找到数字的奇偶校验。

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

结论

如果您对本教程有任何疑问,请在评论部分中提出。

更新时间: 2020 年 12 月 29 日

2K+ 浏览

启动你的 职业生涯

完成课程获得认证

开始
广告