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