Converti stringa binaria in Int in Java

Rupam Yadav 12 ottobre 2023
  1. Converti una stringa binaria in Int in Java utilizzando Integer.parseInt()
  2. Converti una stringa binaria in Int in Java usando Math.pow()
Converti stringa binaria in Int in Java

Il binario è composto da due numeri, 0 e 1, e questi numeri vengono utilizzati per scrivere diversi tipi di istruzioni per le macchine. Ma è difficile per gli esseri umani leggere questi codici binari. Questo è il motivo per cui esistono varie tecniche per convertire il binario in un formato leggibile dall’uomo.

In questo tutorial, esamineremo i due metodi che possiamo usare per convertire una stringa binaria in un int. Il nostro obiettivo è prendere il binario e analizzarlo per produrre un int che rappresenta quel numero binario.

Converti una stringa binaria in Int in Java utilizzando Integer.parseInt()

Il primo metodo è Integer.parseInt() che analizza la stringa data in un int. Quando passiamo una stringa e una radice o il valore di base a Integer.parseInt(), restituisce un valore int calcolato in base al numero di radice.

Nell’esempio, binaryString ha un valore binario che deve essere convertito in un int. Integer.parseInt(binaryString, 2) fa il lavoro per noi. Il primo argomento è la stringa e il secondo argomento è 2 perché un binario è un sistema numerico in base 2.

Se binaryString contiene un valore non binario, verrà lanciata una NumberFormatException e verrà visualizzato il messaggio di errore.

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");
    }
  }
}

Produzione:

18

Converti una stringa binaria in Int in Java usando Math.pow()

In questo metodo, controlleremo ogni carattere di binaryString poiché sappiamo che una stringa in Java è una sequenza di caratteri. Avremo bisogno di scorrere ogni carattere fino alla lunghezza della stringa.

Il passo successivo è controllare l’occorrenza di 1 in binaryString poiché solo gli 1 vengono aggiunti quando convertiamo un binario in un decimale. Se c’è un 1, diminuirà prima la lunghezza di binaryString con 1 e con il valore dell’iterazione. Quindi, nel caso di 101000, il primo carattere è uno, il che significa che int len conterrà il valore 5 perché binaryString.length() è 6 e la variabile di iterazione i contiene 0, quindi significa che 6 - 1 - 0 sarà 5.

Ora, quando otteniamo 5, viene passato a Math.pow(base, len) come secondo argomento, mentre il primo argomento sarà la base. Applicherà la base 2 ai numeri e poi aggiungerà tutti i numeri dandoci il risultato in 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);
  }
}

Produzione:

40
Autore: 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

Articolo correlato - Java String

Articolo correlato - Java Int