はじめに
この実験では、Java で整数を 2 進数に変換する方法を学びます。この変換にはいくつかの方法があり、最も一般的に使われる方法を説明します。
toBinaryString() メソッドを使用する
toBinaryString() メソッドは、整数を 2 進数文字列に変換する最も簡単な方法です。このメソッドは Integer クラスのメソッドで、int を 2 進数に変換した後、String を返します。
public static String toBinaryString(int val)
ここで val は、2 進数システムに変換したい値です。このメソッドは、文字列形式で 2 進数値を返します。
public class IntegerToBinaryConverter {
public static void main(String[] args) {
int val = 183;
System.out.println("Value in binary system is: " + Integer.toBinaryString(val));
}
}
出力:Value in binary system is: 10110111
長除法を使用する
この方法は完全に数学的なものです。32 ビットの 2 進数表現を考慮して、32 のサイズの整数の配列を宣言します。各回、数値を 2 で割り、余りを整数の配列の中に格納します。最後に、結果を得るために、配列を逆順に走査します。
public class IntegerToBinaryConverter {
public static void main(String[] args) {
int val = 183;
int num[] = new int[32];
int pos = 0;
while (val > 0) {
num[pos++] = val % 2;
val = val / 2;
}
System.out.print("Value in binary system is: ");
for (int i = pos - 1; i >= 0; i--) {
System.out.print(num[i]);
}
}
}
出力:Value in binary system is: 10110111
ビット演算を使用する
右シフト演算子を使用することで、任意の値を半分にすることができます。ビットレベルで作業しているため、これは非常に低コストの演算です。そして、残りの処理は上記の例と同じです。最後に、StringBuilder オブジェクトに格納されている値を逆順にして 2 進数形式に正しくするために値を出力します。
public class IntegerToBinaryConverter {
public static void main(String[] args) {
int val = 183;
StringBuilder binary = new StringBuilder(32);
while (val > 0) {
binary.append(val % 2);
val >>= 1;
}
binary.reverse().toString();
System.out.print("Value in binary system is: " + binary.reverse().toString());
}
}
出力:Value in binary system is: 10110111
Integer.toString() メソッドを使用する
java.lang.Integer クラスには、Integer.toString() メソッドを使用するというもう一つの興味深い方法があります。このメソッドは、最初の引数を数値とし、2 番目の引数を基数(ここでは基数は数値システムの基数)として受け取ります。2 進数の場合は 2、8 進数の場合は 8、16 進数の場合は 16 とすることができます。私たちの場合、2 進数のために基数を 2 に設定します。
public class IntegerToBinaryConverter {
public static void main(String[] args) {
int val = 183;
System.out.print("Value in binary system is: " + Integer.toString(val, 2));
}
}
出力:Value in binary system is: 10110111
まとめ
この実験では、Java で整数を 2 進数システムに変換する方法を 4 つの異なる方法を使って学びました。最初の方法は、組み込みの toBinaryString() メソッドを使用する方法で、2 番目は長除法を使用する方法、3 番目はビット演算を使用する方法、4 番目は Integer.toString() メソッドを使用する方法です。
各方法にはそれぞれ利点と欠点があり、必要に応じて最も適した方法を使用することができます。



