Java で 16 進文字列を整数に変換する
-
Java で
Integer.decode()
を使用して短い 16 進文字列を整数に変換する -
Java で
Long.parseLong()
を使用して 16 進数の長い文字列を整数に変換する -
Java で非常に長い 16 進数の文字列を
BigInteger
を用いてint
に変換する
この記事では、16 進数の文字列を int
に変換するために使える 3つの方法を紹介します。16 進数または 16 進数とは、数字を表す記号が 16 個あることを意味します。数字を表すのに使われる 16 進数の値は、10 進数では 0-9、10 進数では A-F が 10-15 を表します。
以下の例では、Java で異なる長さの 16 進数の文字列を整数に変換する手順を見てみましょう。
Java で Integer.decode()
を使用して短い 16 進文字列を整数に変換する
最初の例では、Integer
クラスの decode()
関数を用いています。
Java では、int
は最小値-231から最大値 231-1 までの値を格納することができます。もし結果を整数型にしたいのであれば、長い文字列を扱うことはできません。この記事のさらなる例では、16 進数の長い値を数値に変換する方法を示します。
public class Main {
public static void main(String[] args) {
String hex = "0x2fd";
int convertedValue = Integer.decode(hex);
System.out.print(convertedValue);
}
}
出力:
765
Java で Long.parseLong()
を使用して 16 進数の長い文字列を整数に変換する
上で説明したように、大きな 16 進値をプリミティブ整数に変換することはできません。この例では、-263から 263-1 という大きな容量を持つ Long
を使っているのはこのためです。
Long
の parseLong()
メソッドは文字列と基底値の 2つのパラメータを取り、文字列をプリミティブな長整数に変換します。
public class Main {
public static void main(String[] args) {
String hex = "AA0F245C";
long l = Long.parseLong(hex, 16);
System.out.println(l);
}
}
出力:
2853119068
Java で非常に長い 16 進数の文字列を BigInteger
を用いて int
に変換する
16 進値は様々な目的に利用できるが、その一つは何かを暗号化したい場合であり、この 16 進数の値は非常に長いものになる可能性があります。何らかの理由でこの 16 進数を数値に変換したい場合は、その名前が示すように大きな整数を保持できる BigInteger
を使用することができます。
次の例では、BigInteger
のコンストラクタに 16 進数の値を基底値で渡しています。また、BigInteger.intValue()
から int
の値を取得することもできますが、これは 32 ビットの開始値を返すだけです。
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
String hex = "4D21C5BA77D06212F39E16BF2756E9811125F7FC";
BigInteger bigInteger = new BigInteger(hex, 16);
System.out.println(bigInteger);
}
}
出力:
440345438517096076415390637616379300179635206140
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn関連記事 - Java Int
- Java で int を char に変換する方法
- Java で Int を Double に変換する
- Java でオブジェクトを Int に変換する
- Java の Int のリスト
- Java で Int が Null かどうかを確認する
- Java で Int を Byte に変換する