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

C++の他のいくつかのトグルビットのすべてのセットビットに対して


この問題では、2つの整数値が与えられます。私たちのタスクは、操作を実行するためのcプログラムを作成することです。数値の設定されたビットごとに、他のビットを切り替えます。

問題を理解するために例を見てみましょう

Input: 3 7
Output: 4
Binary of 3: 011
Binary of 3: 111

2番目の数値の1番目と2番目のビットが反転し、100、つまり4になります。

ソリューションアプローチ

この問題を解決するためのアプローチは、2つの数値のXOR演算を実行することです。 XOR演算を使用して、I’stのビットが1である場合は常に、結果がビットに対して切り替えられます。

ソリューションの動作を説明するプログラム

#include <bits/stdc++.h>
using namespace std;

int main(){
   int a = 3, b = 7;
   cout<<"The numbers are "<<a<<" & "<<b<<endl;
   cout<<"The result of flipping bits is "<<(a ^ b);
   return 0;
}

出力

The numbers are 3 & 7
The result of flipping bits is 4

  1. C++でkセットビットの数を最大化するために必要な最小フリップ。

    問題の説明 2つの数値nとkが与えられた場合、結果の数値が正確にkセットビットになるようにビットを反転することにより、指定された数値を最大化するために必要な最小の反転数を見つける必要があります。入力は、k

  2. C / C ++でビットをどのように設定、クリア、および切り替えますか?

    C、C ++、Python、およびこれらの操作をサポートする他のすべてのプログラミング言語でビット演算子を使用して、クリアビットとトグルビットを設定できます。また、ビットを適切な場所に配置するには、ビットシフト演算子を使用する必要があります。 少し設定する ビットを設定するには、ビットごとのOR演算子-を使用する必要があります。 例 #include n; i | =(1 <