Programa Java para convertir strings binarias a decimales usando la clase Wrapper

Dada una string binaria como entrada, necesitamos escribir un programa para convertir la string binaria dada en su número decimal equivalente.

Examples:

Input  : 1111
Output : 15

Input  : 1001101
Output : 77

Input  : 1101
Output : 13

La idea es extraer cada carácter de una string binaria dada usando charAt() y convertir esos caracteres en su tipo entero primitivo correspondiente usando Character.getNumericValue() y almacenar esos enteros convertidos en la array de tipo entero primitivo en orden inverso. Funciona con números binarios largos como 20 bits o 30 bits. Como se muestra en la siguiente figura:

String binaria convertida a array de tipo int primitivo y almacenada en orden inverso

String binaria convertida a array de tipo int primitivo y almacenada en orden inverso

A continuación se muestra la implementación de la idea del código anterior:

Java

//  Program to Convert a given Binary String to
// its equivalent decimal number
  
import java.lang.Math;
import java.util.Scanner;
  
class BinaryToDecimal {
    // convertToDec() Method
    // performs the conversion of
    // Binary to Decimal
    static int convertToDec(String bin)
    {
        int[] binArray = new int[1024];
        int eqv_dec = 0;
  
        // Converting characters of Binary String to
        // primitive integer and storing it in the Array in
        // reverse order!!
        for (int i = bin.length() - 1; i >= 0; i--) {
            binArray[i]
                = Character.getNumericValue(bin.charAt(i));
        }
  
        // Evaluating Equivalent Decimal Number from the
        // Binary Array!!
        for (int i = 0; i < bin.length(); i++) {
            if (binArray[i] == 1) {
                eqv_dec += (int)Math.pow(2, bin.length() - 1
                                                - i);
            }
            else
                continue;
        }
        return eqv_dec;
    }
  
    // Driver Code!
    public static void main(String[] args)
    {
        String bin = "1101";
        System.out.println("Given Binary:  " + bin);
        int eqv_dec = convertToDec(bin);
        System.out.println("Equivalent Decimal Number:  "
                           + eqv_dec);
    }
}

Producción:

Given Binary:  1101
Equivalent Decimal Number:  13

Publicación traducida automáticamente

Artículo escrito por anujdas10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *