Convertir hexadecimal a decimal en bash

Convertir hexadecimal a decimal en bash
Cuatro tipos de sistemas numéricos son populares en los sistemas informáticos. Estos son decimales, binarios, octales y hexadecimales. El sistema binario se basa en 2 y todos los cálculos aritméticos se realizan por computadora en el sistema binario. Utiliza solo dos dígitos, 0 y 1 para cálculo. El sistema numérico que utilizamos para el cálculo general es el sistema decimal, que se basa en 10. Se utilizan números de 0 a 9 en el sistema decimal para el cálculo. El sistema de número octal se basa en 8 y se representa por 0 a 7 dígitos. El sistema de número hexadecimal está basado en 16 y utiliza los caracteres 0 a 9 y A a F para representar el número. Puede convertir fácilmente un número a otro sistema de números utilizando el script bash. En este tutorial se muestra cómo puede convertir el número hexadecimal (hex) en número decimal en bash utilizando varios ejemplos.

Ejemplo-1: Uso de OBASE, IBASE y BC

Una de las formas simples de convertir cualquier sistema numérico en otro sistema de números es usar IBASE, OBASE y BC. Crear un archivo bash llamado Hextodec1.mierda y agregue el siguiente código. Según este ejemplo, un número hexadecimal se tomará como entrada y se convertirá en el número decimal en función del valor de OBASE e IBASE. Aquí, OBASE está configurado en 10 para convertir el número decimal, IBase se establece en 16 para tomar el número de entrada como número hexadecimal y 'antes de Cristo' El comando se usa para la conversión.

#!/bin/bash
Echo "Tipo un número hexadecimal"
Leer hexnum
echo -n "El valor decimal de $ hexnum ="
echo "obase = 10; ibase = 16; $ hexnum" | antes de Cristo

Producción:

Ejecute el script con el comando bash y dé cualquier número hexadecimal como entrada para averiguar el valor decimal.

$ bash hextodec1.mierda

Ejemplo-2: Uso de ibase, argumento de línea de comandos y BC

Crear un archivo bash llamado Hextodec2.mierda y agregue el siguiente código. En este ejemplo, el valor de entrada debe dar en el argumento de la línea de comando, que será leído por ps. Aquí, solo IBase con 16 valor se usa para convertir hexadecimal al número decimal.

#!/bin/bash
echo -n "El valor decimal de $@="
echo "ibase = 16; $@" | BC

Producción:

Ejecute el comando script con el comando bash, el nombre del archivo y un número hexadecimal como argumento de línea de comando. Aquí, FF se da como argumento de línea de comandos que se toma como valor hexadecimal.

$ bash hextodec2.SH FF

Ejemplo-3: usando el método printf

Otra opción para convertir Hex en el número decimal es printf. '%d' El especificador de formato se usa en printf Método para convertir cualquier número a número decimal. Crear un archivo bash llamado Hextodec3.mierda y agregue el siguiente código. Según este guión, se tomará un número hexadecimal como entrada y se usa en printf método con %d para imprimir el valor decimal.

#!/bin/bash
Echo "Tipo un número hexadecimal"
Leer hexnum
printf "El valor decimal de $ hexnum =%d \ n" $ ((16#$ hexnum))

Producción:

Ejecute el script con el comando bash y dé cualquier número hexadecimal como entrada para averiguar el valor decimal.

$ bash hextodec3.mierda

Ejemplo-4: usando soportes dobles

Hay otra forma de convertir hexadecimal al número decimal sin usar el método IBASE, OBAS y BC o PrintF. Puede usar la expresión de doble soporte con 16 base para convertir hex en el número decimal. Crear un archivo bash llamado Hextodec4.mierda y agregue el siguiente código. Aquí, el comando echo tomará el número como hex e imprimirá la salida en el sistema de número decimal.

#!/bin/bash
Echo "Tipo un número hexadecimal"
Leer hexnum
Echo $ ((16#$ hexnum))

Producción:

Ejecute el script con el comando bash y dé cualquier número hexadecimal como entrada para averiguar el valor decimal.

$ bash hextodec4.mierda

Ejemplo-5: Convertir la lista de números hexadecimales

Supongamos que tiene un archivo de texto nombrado 'Hexlist.TXT' que contiene la siguiente lista de números hexadecimales.

Hexlista.TXT
Ab05
FF
A B C D
Acd
CAMA

Crear un archivo bash llamado Hextodec5.mierda y agregue el siguiente código para convertir cada valor hexadecimal de hexlista.TXT en el valor decimal. Aquí, Obase, Ibase y BC se utilizan para la conversión. mientras El bucle se usa para leer cada valor hexadecimal del archivo de texto, convertir al valor decimal e imprimir.

#!/bin/bash
Mientras que el número de lectura
hacer
echo -n "El valor decimal de $ número (hex) ="
echo "obase = 10; ibase = 16; $ número" | antes de Cristo
hecho < hexList.txt

Producción:

Ejecute el comando de script con el comando bash. Hay cinco valores hexadecimales en el archivo de texto y la salida muestra cinco valores decimales después de la conversión.

$ bash hextodec5.mierda

Este tutorial muestra múltiples formas de convertir hexadecimas a valores decimales utilizando el script bash. Puede seguir cualquiera de las formas de su conversión. También puede convertir otros sistemas de números utilizando los scripts mencionados en este tutorial simplemente cambiando el valor base.