C++ 程序快速查找一个数的奇偶校验
在本文中,我们将讨论一个程序,查找给定数字 N 的奇偶校验。
奇偶校验定义为一个数的二进制表示中设置的位(‘1’的个数)。
如果二进制表示中的‘1’的个数为偶数,则奇偶校验称为偶数,如果二进制表示中的‘1’的个数为奇数,则奇偶校验称为奇数。
如果给定的数是 N,我们可以执行以下操作。
- y = N ^ (N >> 1)
- y = y ^ (y >> 2)
- y = y ^ (y >> 4)
- y = y ^ (y >> 8)
- y = y ^ (y >> 16)
一旦所有这些操作都完成,y 中最右边的位将表示该数的奇偶校验。如果该位为 1,则奇偶校验为奇数,如果该位为 0,则奇偶校验为偶数。
示例
#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;
}输出
Even Parity
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP