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

C++のバイナリ表現でk番目のビットの値を検索します


この問題では、2つの値nとkが与えられます。私たちのタスクは、バイナリ表現でk番目のビットの値を見つけることです。 。

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

Input : n= 5, k = 2
Output : 0

説明

Binary of 5 = 0101
Second LSB bit is 0.

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

この問題の解決策は、すべてのビットが設定されておらず、1ビットがk番目に設定されている数値で数値Nの2進変換のビットごとのANDを実行して、結果を取得することです。

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

#include <iostream>
using namespace std;
void findKBitVal(int n, int k){
   cout<< ((n & (1 << (k - 1))) >> (k - 1));
}
int main(){
   int n = 29, k = 4;
   cout<<"The value of kth bit in binary of the number is ";
      findKBitVal(n, k);
      return 0;
}

出力

The value of kth bit in binary of the number is 1

  1. C++で左下のツリー値を検索

    二分木があるとします。そのツリーの最後の行の左端の値を見つける必要があります。したがって、ツリーが次のような場合- 最後の行が[7、4]であり、左端の要素が7であるため、出力は7になります。 これを解決するには、次の手順に従います- 最初にansとlvl変数を0として定義します solve()と呼ばれる1つのメソッドを定義します。これはツリーノードを取り、レベルは最初は0です。これは次のように機能します- ノードがnullの場合は、を返します。 lvlの場合、ans:=ノードの値およびlvl:=level 解決(ノードの左側、レベル+ 1)

  2. C++の二分探索木で最小値のノードを見つけます

    1つの二分探索木があるとします。二分探索木で最小要素を見つける必要があります。したがって、BSTが以下のような場合- 最小要素は1になります。 左のサブツリーは常に小さい要素を保持していることがわかっています。したがって、左がnullになるまで左のサブツリーを何度もトラバースすると、最小の要素を見つけることができます。 例 #include<iostream> using namespace std; class node{    public:       node *left;