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
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
C++での次の数値の2進表現
この問題では、数値の2進表現が与えられ、次の数の2進表現、つまり、与えられた数に1を足した後に得られる数を見つける必要があります。 バイナリ表現 数値の基数は、数値の基数を基数2に変更し、0または1のみを使用して数値を表します。 たとえば、14のバイナリ表現は1110です。 したがって、ここでは数値が与えられます。たとえば、バイナリ形式のnです。そして、n+1のバイナリ表現を見つける必要があります。 この問題を解決するには、2進加算の基本を知る必要があります。 1をバイナリ形式で0または1に追加するとどうなるか見てみましょう。 0 + 1 =1 1 + 1 =10 例 上記の
-
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