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