Java での整数から 2 進数への変換

JavaBeginner
オンラインで実践に進む

はじめに

この実験では、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() メソッドを使用する方法です。

各方法にはそれぞれ利点と欠点があり、必要に応じて最も適した方法を使用することができます。