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.TXTCrear 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.