Javaでの10進数・16進数の変換
10進数から16進数への変換
Javaでは、整数を16進数に変換するために Integer.toHexString(int)
を使用できます。
int decimalNumber = 255;
String hexString = Integer.toHexString(decimalNumber);
System.out.println(hexString); // "ff"
大文字表記にする場合は toUpperCase()
を使います。
String hexUpperCase = hexString.toUpperCase();
System.out.println(hexUpperCase); // "FF"
16進数から10進数への変換
16進数の文字列を10進数の整数に変換するには Integer.parseInt()
を使用します。
String hexString = "ff";
int decimalNumber = Integer.parseInt(hexString, 16);
System.out.println(decimalNumber); // 255
大文字・小文字は区別されません。
int decimalNumber2 = Integer.parseInt("FF", 16);
System.out.println(decimalNumber2); // 255
ゼロ埋めの16進数変換
一定の桁数に揃えて16進数を表示するには String.format()
を利用できます。
int number = 255;
String formattedHex = String.format("%04x", number);
System.out.println(formattedHex); // "00ff"
大文字表記にするには %X
を使用します。
String formattedHexUpperCase = String.format("%04X", number);
System.out.println(formattedHexUpperCase); // "00FF"
16進数のパース時の例外
不正な文字列をパースしようとすると NumberFormatException
が発生します。
try {
int value = Integer.parseInt("G1", 16);
} catch (NumberFormatException e) {
System.out.println("エラー: " + e.getMessage());
}
ビット演算による16進数操作
ビット演算を使って16進数を扱うことも可能です。
int num1 = 0xF0; // 16進数 0xF0 (240)
int num2 = 0x0F; // 16進数 0x0F (15)
int result = num1 | num2; // OR演算
System.out.println(Integer.toHexString(result)); // "ff"
ビット演算を活用すると、効率的なデータ処理ができます。