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

2進表現の最大数は、C++ではm1とm-10です。


このチュートリアルでは、m1とm-10で最大の数を見つけるプログラムを作成します。

問題を解決するための手順を見てみましょう。

  • 2つの変数ビットを初期化し、それぞれ2と1で結果を出します。
  • 1からnまで繰り返すループを作成します。
    • 反復変数値をpow(2、bits)-1)*(pow(2、bits-1))で更新します。
    • 反復変数がn未満の場合は、結果をiで更新します。
    • ビット数を増やします。
  • 結果を返します。

コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
long long getTheNumber(long long n) {
   long bits = 2;
   long long result = 1;
   long long i = 1;
   while (i < n) {
      i = (int)(pow(2, bits) - 1) * (pow(2, bits - 1));
      if (i < n) {
         result = i;
      }
      bits++;
   }
   return result;
}
int main() {
   long long n = 654;
   cout << getTheNumber(n) << endl;
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

496

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C++での次の数値の2進表現

    この問題では、数値の2進表現が与えられ、次の数の2進表現、つまり、与えられた数に1を足した後に得られる数を見つける必要があります。 バイナリ表現 数値の基数は、数値の基数を基数2に変更し、0または1のみを使用して数値を表します。 たとえば、14のバイナリ表現は1110です。 したがって、ここでは数値が与えられます。たとえば、バイナリ形式のnです。そして、n+1のバイナリ表現を見つける必要があります。 この問題を解決するには、2進加算の基本を知る必要があります。 1をバイナリ形式で0または1に追加するとどうなるか見てみましょう。 0 + 1 =1 1 + 1 =10 例 上記の

  2. C++での特定の数値のバイナリ表現

    2進数 は、0と1の2桁のみで構成される数値です。たとえば、01010111。 特定の数値を2進数で表すにはさまざまな方法があります。 再帰的方法 このメソッドは、再帰を使用して2進数形式で数値を表すために使用されます。 アルゴリズム Step 1 : if number > 1. Follow step 2 and 3. Step 2 : push the number to a stand. Step 3 : call function recursively with number/2 Step 4 : pop number from stack and print remai