Converter hexadecimal em decimal em bash

Converter hexadecimal em decimal em bash
Quatro tipos de sistemas numéricos são populares em sistemas de computador. Estes são decimais, binários, octal e hexadecimais. O sistema binário é baseado em 2 e todos os cálculos aritméticos são feitos por computador em sistema binário. Ele usa apenas dois dígitos, 0 e 1 para cálculo. O sistema numérico que usamos para cálculo geral é o sistema decimal, que é 10 baseado. 0 a 9 números são usados ​​no sistema decimal para cálculo. O sistema de número octal é baseado em 8 e representado por 0 a 7 dígitos. O sistema de números hexadecimais é baseado em 16 e usa de 0 a 9 e A a F caracteres para representar o número. Você pode converter facilmente um número para outro sistema de número usando o script bash. Como você pode converter o número hexadecimal (Hex) em número decimal em Bash é mostrado neste tutorial usando vários exemplos.

Exemplo 1: Usando OBase, Ibase e BC

Uma das maneiras simples de converter qualquer sistema numérico para outro sistema de números é usar o IBASE, OBASE e BC. Crie um arquivo bash chamado Hextodec1.sh e adicione o seguinte código. De acordo com este exemplo, um número hexadecimal será tomado como entrada e convertido no número decimal com base no valor de obase e ibase. Aqui, o OBase está definido como 10 para converter o número decimal, o IBASE está definido como 16 para tomar o número de entrada como número hexadecimal e 'BC ' O comando é usado para conversão.

#!/BIN/BASH
eco "Número hexadecedor do tipo A"
Leia Hexnum
eco -n "O valor decimal de $ hexnum ="
eco "obase = 10; ibase = 16; $ hexnum" | bc

Saída:

Execute o script com o comando Bash e dê qualquer número hexadecimal como entrada para descobrir o valor decimal.

$ Bash Hextodec1.sh

Exemplo-2: Usando Ibase, Comando Line Argument e BC

Crie um arquivo bash chamado Hextodec2.sh e adicione o seguinte código. Neste exemplo, o valor de entrada deve dar no argumento da linha de comando, que será lido por $@. Aqui, apenas ibase com 16 valor é usado para converter hexés em número decimal.

#!/BIN/BASH
echo -n "O valor decimal de $@="
eco "ibase = 16; $@" | bc

Saída:

Execute o script com o comando Bash, o nome do arquivo e um número hexadecimal como argumento da linha de comando. Aqui, Ff é dado como argumento da linha de comando que é tomado como valor hexadecimal.

$ bash hextodec2.sh ff

Exemplo 3: Usando o método Printf

Outra opção para converter o hexágono para o número decimal é printf. '%d' O especificador de formato é usado em printf Método para converter qualquer número em número decimal. Crie um arquivo bash chamado Hextodec3.sh e adicione o seguinte código. De acordo com este script, um número hexadecimal será tomado como entrada e é usado em printf método com %d Para imprimir o valor decimal.

#!/BIN/BASH
eco "Número hexadecedor do tipo A"
Leia Hexnum
printf "O valor decimal de $ hexnum =%d \ n" $ ((16#$ hexnum))

Saída:

Execute o script com o comando Bash e dê qualquer número hexadecimal como entrada para descobrir o valor decimal.

$ bash hextodec3.sh

Exemplo-4: Usando suportes duplos

Há outra maneira de converter hexés para o número decimal sem usar o método IBASE, OBASE e BC ou PRIMF. Você pode usar a expressão de colchetes duplos com 16 base para converter hexés em número decimal. Crie um arquivo bash chamado Hextodec4.sh e adicione o seguinte código. Aqui, o comando eco levará o número como hexadecimal e imprimirá a saída no sistema de números decimais.

#!/BIN/BASH
eco "Número hexadecedor do tipo A"
Leia Hexnum
echo $ ((16#$ hexnum))

Saída:

Execute o script com o comando Bash e dê qualquer número hexadecimal como entrada para descobrir o valor decimal.

$ Bash Hextodec4.sh

Exemplo 5: convertendo a lista de números hexadecimais

Suponha que você tenha um arquivo de texto chamado 'Hexlist.TXT' que contém a seguinte lista de números hexadecimais.

Hexlista.TXT
AB05
Ff
ABCD
Accd
CAMA

Crie um arquivo bash chamado Hextodec5.sh e adicione o seguinte código para converter cada valor hexadecimal de hexlista.TXT no valor decimal. Aqui, obase, ibase e bc são usados ​​para conversão. enquanto O loop é usado para ler cada valor hexadecimal do arquivo de texto, converter em valor decimal e imprimir.

#!/BIN/BASH
enquanto lê o número
fazer
eco -n "O valor decimal de $ número (hex) ="
eco "obase = 10; ibase = 16; $ número" | bc
feito < hexList.txt

Saída:

Execute o script com o comando Bash. Existem cinco valores hexadecimais no arquivo de texto e a saída mostra cinco valores decimais após a conversão.

$ bash hextodec5.sh

Este tutorial mostra várias maneiras de converter hexés em valores decimais usando o script Bash. Você pode seguir qualquer uma das maneiras para o seu objetivo de conversão. Você também pode converter outros sistemas de números usando os scripts mencionados neste tutorial apenas alterando o valor base.