Java でバイナリ文字列を整数に変換する
2 進法は 0 と 1 の 2つの数字で構成されており、これらの数字を使って機械にさまざまな種類の命令を書いています。しかし、人間がこれらのバイナリコードを読むのは大変です。そのため、バイナリを人間が読める形式に変換するための様々なテクニックがあります。
このチュートリアルでは、バイナリ文字列を整数に変換するために使用できる 2つの方法について説明します。私たちの目標は、バイナリを取得してそれを解析し、そのバイナリ番号を表す整数を出力することです。
Integer.parseInt()
を使って Java でバイナリ文字列を整数に変換する
最初のメソッドは Integer.parseInt()
であり、与えられた文字列を int
に変換します。文字列と基数または基底値を Integer.parseInt()
に渡すと、基数に応じて計算された int
値が返されます。
この例では、binaryString
はバイナリ値を持っており、これを整数に変換する必要があります。Integer.parseInt(binaryString, 2)
がその仕事をしてくれる。第 1 引数は文字列であり、第 2 引数は 2 です。
binaryString
にバイナリ以外の値が含まれている場合は、NumberFormatException
がスローされ、エラーメッセージが表示されます。
public class BinaryStringToInt {
public static void main(String[] args) {
try {
String binaryString = "10010";
int foo = Integer.parseInt(binaryString, 2);
System.out.println(foo);
} catch (NumberFormatException e) {
System.out.println("Error: The binary string is not valid");
}
}
}
出力:
18
Java で Math.pow()
を用いてバイナリ文字列を整数に変換する
このメソッドでは、Java における文字列は文字の列であることを知っているので、binaryString
の各文字をチェックします。文字列の長さになるまで、すべての文字をループさせる必要があります。
次のステップは、バイナリを 10 進数に変換するときに 1 だけが追加されるので、binaryString
の中に 1 が存在するかどうかをチェックすることです。1 があれば、まず binaryString
の長さを 1 と反復の値で減少させます。つまり、101000
の場合、最初の文字は 1 であり、binaryString.length()
は 6 であり、反復変数 i
は 0 を保持しているので、int len
は値 5 を保持することになり、6 - 1 - 0 は 5 になるということです。
さて、5 が得られたので、それを第 2 引数として Math.pow(base,len)
に渡すと、第 1 引数が基底となります。基数 2 を数値に適用してから、すべての数値を加算して、結果を整数とします。
public class Main {
public static void main(String[] args) {
String binaryString = "101000";
double convertedDouble = 0;
for (int i = 0; i < binaryString.length(); i++) {
if (binaryString.charAt(i) == '1') {
int len = binaryString.length() - 1 - i;
convertedDouble += Math.pow(2, len);
}
}
int convertedInt = (int) convertedDouble;
System.out.println(convertedInt);
}
}
出力:
40
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 String
- Java で 16 進文字列のバイト配列を変換する方法
- Java で文字列から部分文字列を削除する方法
- Java で文字列から文字列配列への変換を実行する方法
- Java 文字列をバイトに変換する方法
- Java でランダムな文字列を生成する
- Java のスワップメソッド