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

C++で数値の未​​設定ビットをカウントします


整数、たとえばnumが与えられ、タスクは最初に数値の2進数を計算し、次に数値の未設定ビットの合計を計算することです。

2進数の未設定ビットは0で表されます。整数値の2進数を計算するときは常に、0と1の組み合わせとして形成されます。したがって、数字の0は、コンピューターの観点からは未設定ビットとして知られています。

入力 −int番号=50

出力 −数値の未設定ビットの総数は− 3

説明 −数値50の2進表現は110010であり、8桁の数値で計算すると、最初に2つの0が追加されます。したがって、数値の未設定ビットの合計は3です。

入力 −int番号=10

出力 −数値の未設定ビットの総数は次のとおりです。6

説明 −数値10の2進表現は00001010であり、8桁の数値で計算すると、最初に4つの0が追加されます。したがって、数値の未設定ビットの合計は6です。

以下のプログラムで使用されているアプローチは次のとおりです

  • 整数型の変数に数値を入力してください

  • 変数countを宣言して、unsignedint型のセットビットの総数を格納します

  • ループFORをiから1<<7およびi>0およびiからi/2

    に開始します。
  • ループ内で、num&1 ==TRUEをチェックしてから、1を出力します。それ以外の場合は0を出力します

  • ループ内で、数値の合計桁数をインクリメントします。

  • ループを開始し、数値が0になるまでビットの総数を計算します

  • ループ内で、count =count + number&1を設定し、number>> =1

    も設定します。
  • カウントを数値の合計桁数として設定します-数値の合計セットビット数。

  • カウントを印刷する

#include<iostream>
using namespace std;
//Count total unset bits in a number
unsigned int unset_bits(unsigned int number){
   unsigned int total_digits = 0;
   unsigned int count = 0;
   unsigned i;
   //display the total 8-bit number
   cout<<"8-bit digits of "<<number<<" is: ";
   for (i = 1 << 7; i > 0; i = i / 2){
      (number & i)? cout<<"1": cout<<"0";
      total_digits++;
   }
   //calculate the total unset bits in a number
   while (number){
      count += number & 1;
      number >>= 1;
   }
   count = total_digits - count;
   cout<<"\nCount of total unset bits in a number are: "<<count;
}
int main(){
   int number = 50;
   unset_bits(number);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

8-bit digits of 50 is: 00110010
Count of total set bits in a number are: 5

  1. C ++を使用してOpenCVのフレームの総数をカウントするにはどうすればよいですか?

    OpenCVでフレームの総数を計算する方法を学びます。 OpenCVを使用すると、ビデオのフレームの総数をカウントして表示するのが基本です。ただし、リアルタイムビデオフレームの総数をカウントできないことに注意する必要があります。リアルタイム動画には特定のフレーム数がないためです。 次のプログラムは、合計フレーム数をカウントし、コンソールウィンドウに表示します。 例 #include<opencv2/opencv.hpp> #include<iostream> using namespace std; using namespace cv; int main() { &

  2. C++で長方形の正方形の数を数える

    =Bとなるように、長さL、幅Bの長方形が与えられます。目標は、サイズLXBの長方形が収容できる正方形の数を見つけることです。 上の図は、サイズ3 X 2の長方形を示しています。2、2X2の正方形、6,1X1の正方形があります。 総正方形=6+ 2=8。 サイズLXBのすべての長方形には、1X1の正方形のL*B数があります。 最大の正方形のサイズはBXBです。 L =B =1の場合、正方形=1。 L =B =2の場合、正方形=1 + 4 =5(2X2の1、1X1の4) L =B =3の場合、正方形=1 + 4 + 9 =14(3X3の​​1、2X2の4、1