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