Javaでの8進数変換について
8進数とは
8進数は、数字の基数が8である数体系です。0から7までの数字を使用して数値を表現します。コンピュータ科学では、2進数と16進数と並んで重要な数体系の一つです。8進数は、特に古いコンピュータシステムや一部の組み込みシステムで使われることがあります。
8進数に変換する方法
Javaでは、整数を8進数に変換するための簡単な方法があります。以下の方法で実現できます:
- Integer.toOctalString(int num) メソッドを使う。
- String.format(“%o”, num) を使う。
これらの方法を使用すると、10進数の数値を8進数として出力することができます。
8進数変換の例
以下にいくつかの例を示します。
// 例1: Integer.toOctalStringを使用 int num = 64; String octalString = Integer.toOctalString(num); System.out.println("10進数: " + num + " -> 8進数: " + octalString); // 64 -> 100 // 例2: String.formatを使用 int num2 = 45; String octalString2 = String.format("%o", num2); System.out.println("10進数: " + num2 + " -> 8進数: " + octalString2); // 45 -> 55
上記のコードでは、10進数の数値を8進数に変換しています。Integer.toOctalString()メソッドは、指定された整数を8進数の文字列として返します。String.format(“%o”, num)は、指定された整数を8進数としてフォーマットして返します。
8進数から10進数への変換
8進数の文字列を10進数に変換するには、Integer.parseInt(String s, int radix) メソッドを使います。ここで、radixには8を指定します。
// 例1: 8進数の文字列を10進数に変換 String octalStr = "100"; // 8進数の文字列 int decimal = Integer.parseInt(octalStr, 8); System.out.println("8進数: " + octalStr + " -> 10進数: " + decimal); // 100 -> 64
上記のコードでは、8進数の文字列”100″を10進数の整数64に変換しています。Integer.parseInt()は、指定された基数(radix)に基づいて文字列を整数に変換します。
10進数から8進数への変換
10進数を8進数に変換する方法として、前述のInteger.toOctalString()を使用するのが一般的です。もう一つの方法として、手動で10進数を8進数に変換する方法があります。
// 例1: Integer.toOctalStringを使用 int num = 128; String octalString = Integer.toOctalString(num); System.out.println("10進数: " + num + " -> 8進数: " + octalString); // 128 -> 200
また、10進数から8進数への変換を手動で行う場合、次のように進めます:
- 商と余りを求める。
- 余りを記録し、商を使って次の計算を行う。
- 商が0になるまで続け、余りを逆順に並べる。
これにより、10進数を8進数に変換することができます。