Java でバイナリ文字列を整数に変換する

Rupam Yadav 2023年10月12日
  1. Integer.parseInt() を使って Java でバイナリ文字列を整数に変換する
  2. Java で Math.pow() を用いてバイナリ文字列を整数に変換する
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 Yadav
Rupam Yadav avatar Rupam Yadav avatar

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 Int