Shell script para convertir binario a decimal

Dado un número binario como entrada, necesitamos hacer una conversión de un número binario a su número decimal equivalente.

Ejemplos: 

Input : 1011
Output : 11
Input : 1111
Output : 15

Binario a decimal 

La idea es retener el número decimal del número binario, entonces, toma el número binario y recorre de derecha a izquierda, tomando uno por uno el último dígito del número binario. 

Elija el último dígito y multiplíquelo por la base adecuada (potencia de dos) y agréguelo a la variable final (digamos num).

Repita este proceso hasta que el número binario no sea igual a cero y luego imprima el resultado (es decir, num).

Ejemplo 1: 

n = 101 (Número binario)

num = 1*(2^2) + 0*(2^1) + 1*(2^0) = 6 (resultante decimal)

Ejemplo 2: 

n = 1101 (Número binario)

num =1*(2^3) + 1*(2^2) + 0*(2^1) + 1*(2^0) = 13 (resultante decimal)

Aquí extraeremos el número decimal del número binario dado.

# Take input as binary number
echo "Enter Binary Number -"
read n

# function to convert binary to decimal number
function binaryCon(){

    local i=0
    local num=0
    
    # while loop
    while [ $n != 0 ]
    do
    digit=`expr $n % 10`
    num=$(( num + digit * 2**i ))
    n=`expr $n / 10`
    (( ++i ))
    done
    
    # print the resultant decimal number
    echo "Resultant Decimal Number"
    echo "$num"
}

# Function Call
binaryCon

Producción:

producción

Publicación traducida automáticamente

Artículo escrito por nitupandel001 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 *