C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

数値のパリティを効率的に見つけるためのC++プログラム


この記事では、与えられた数Nのパリティを見つけるプログラムについて説明します。

パリティは、数値の2進表現におけるセットビットの数(「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

  1. C++で三角形の図心を見つけるプログラム

    この問題では、三角形の3つの頂点の座標を示す2D配列が与えられます。私たちのタスクは、C++で三角形のセントロイドを見つけるプログラムを作成することです。 セントロイド 三角形の3つの中央値は、三角形の3つの中央値が交差する点です。 中央値 三角形の頂点は、三角形の頂点とその反対側の線の中心点を結ぶ線です。 問題を理解するために例を見てみましょう 入力 (-3, 1), (1.5, 0), (-3, -4) 出力 (-3.5, -1) 説明 Centroid (x, y) = ((-3+2.5-3)/3, (1 + 0 - 4)/3) = (-3.5, -1) ソリューションアプロ

  2. C++で平行四辺形の面積を見つけるプログラム

    この問題では、平行四辺形の底と高さを表す2つの値が与えられます。私たちのタスクは、C++で平行四辺形の領域を見つけるプログラムを作成することです。 平行四辺形 は、反対側が等しく平行な4辺の閉じた図形です。 問題を理解するために例を見てみましょう 入力 B = 20, H = 15 出力 300 説明 平行四辺形の面積=B* H =20 * 15 =300 ソリューションアプローチ この問題を解決するために、平行四辺形の面積の幾何学的公式を使用します。 Area = base * height. ソリューションの動作を説明するプログラム 例 #include <io