Java에서 이진 문자열을 Int로 변환

Rupam Yadav 2023년10월12일
  1. Integer.parseInt()를 사용하여 Java에서 이진 문자열을 Int로 변환
  2. Math.pow()를 사용하여 Java에서 이진 문자열을 Int로 변환
Java에서 이진 문자열을 Int로 변환

이진수는 0과 1의 두 숫자로 구성되며이 숫자는 기계에 대한 다른 유형의 명령어를 작성하는 데 사용됩니다. 그러나 인간이이 바이너리 코드를 읽는 것은 어렵습니다. 이것이 바이너리를 사람이 읽을 수있는 형식으로 변환하는 다양한 기술이있는 이유입니다.

이 튜토리얼에서는 바이너리 문자열을int로 변환하는 데 사용할 수있는 두 가지 방법을 살펴 보겠습니다. 우리의 목표는 이진수를 가져와 파싱하여 이진수를 나타내는int를 출력하는 것입니다.

Integer.parseInt()를 사용하여 Java에서 이진 문자열을 Int로 변환

첫 번째 메소드는 주어진 문자열을int로 파싱하는Integer.parseInt()입니다. 문자열과 기수 또는 기본 값을Integer.parseInt()에 전달하면 기수에 따라 계산 된int 값을 반환합니다.

이 예에서binaryString에는int로 변환해야하는 이진 값이 있습니다. Integer.parseInt (binaryString, 2)가 우리를 위해 일합니다. 첫 번째 인수는 문자열이고 두 번째 인수는 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

Math.pow()를 사용하여 Java에서 이진 문자열을 Int로 변환

이 방법에서는 Java의 문자열이 일련의 문자임을 알고 있으므로binaryString의 모든 문자를 확인합니다. 문자열의 길이까지 모든 문자를 반복해야합니다.

다음 단계는 바이너리를 십진수로 변환 할 때 1 만 더해 지므로binaryString에서 1이 발생하는지 확인하는 것입니다. 1이 있으면 먼저binaryString의 길이를 1과 반복 값으로 줄입니다. 따라서101000의 경우 첫 번째 문자는 1입니다. 즉binaryString.length()는 6이고 반복 변수i는 0이므로int len은 값 5를 보유합니다. 이는 6-1-0이 5가됨을 의미합니다.

이제 우리는 5를 얻고 두 번째 인자로Math.pow(base, len)에 전달되고 첫 번째 인자는 기저가됩니다. 숫자에 base-2를 적용한 다음 모든 숫자를 더하여 결과를int로 제공합니다.

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