以有效方式查詢 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+ 瀏覽

啟動你的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.