8ビット2進数を10進数に変換するゲームの解説
この記事では、Javaで作成された8ビット2進数を10進数に変換するゲームについて解説します。このゲームはランダムに生成される8ビットの2進数を10進数に変換し、ユーザーにその答えを入力してもらい、正解かどうかを判定するシンプルなゲームです。
基本情報技術者を勉強の合間につくりました。
プログラムの概要
- ランダムな8ビットの2進数を生成し表示する。
- 8ビットの2進数を10進数に変換する。
- ユーザーに10進数を入力してもらう。
- ユーザーの入力と正解を比較し、結果を表示する。
ゲームのコードの解説
-
ランダムな8ビットの2進数を生成し表示する
int[] binary_bits = new int[8]; for (int i = 0; i < binary_bits.length; i++) { binary_bits[i] = new Random().nextInt(2); System.out.print(binary_bits[i]); } System.out.print("\n");
-
int[] binary_bits
は8つの要素を持つ整数型配列で、8ビットの2進数を表現します。 -
Random().nextInt(2)
は0または1をランダムに生成するため、この行のループにより8ビットのランダムな2進数が生成され、コンソールに表示されます。
-
-
8ビットの2進数を10進数に変換す
int num = 0; int[] Decimal = { 128, 64, 32, 16, 8, 4, 2, 1 }; for (int i = 0; i < binary_bits.length; i++) { num += (binary_bits[i] * Decimal[i]); }
-
int num
は10進数の結果を表す変数です。初期値は0です。 -
int[] Decimal
は、2進数の各桁に対応する10進数の値を保持する配列です。このプログラムでは、8ビットの2進数なので、配列には2のべき乗の値が逆順で格納されています(128, 64, 32, ..., 1)。 -
for
ループにより、2進数の各桁と対応する10進数の値を掛け算し、**num
**に加算していくことで、2進数を10進数に変換します。
-
-
ユーザーに10進数を入力してもらう
csharpCopy code System.out.println("上記の8ビット2進数を10進数に変換して入力してください:"); Scanner scanner = new Scanner(System.in); int userGuess = scanner.nextInt();
-
System.out.println
により、ユーザーに対して入力を促すメッセージが表示されます。 -
Scanner
クラスを使用して、ユーザーからの入力を受け取り、**int userGuess
**に格納します。
-
-
ユーザーの入力と正解を比較し、結果を表示する
if (userGuess == num) { System.out.print("正解!"); } else { System.out.print("不正解。正解は " + num); }
-
if-else
文により、ユーザーの入力と正解を比較し、その結果に応じてメッセージを表示します。 - ユーザーの入力が正解(
num
と等しい)であれば、"正解!"
と表示されます。不正解の場合は、"不正解。正解は "
の後に正解の10進数が表示されます。
-
最後に、scanner.close()
により、Scannerオブジェクトを閉じてプログラムを終了します。
このゲームは、ランダムな2進数を10進数に変換する楽しい方法を提供しています。ユーザーは自分の計算力を試すことができるだけでなく、2進数と10進数の相互変換の理解を深めることができます。
※提案を承認し、マークダウンの調整がされました。
ありがとうございます~