Uno dei modi semplici per convertire qualsiasi sistema di numeri in un altro sistema numerico è utilizzare Ibase, Obase e BC. Crea un file bash denominato hextodec1.sh e aggiungi il seguente codice. Secondo questo esempio, un numero esadecimale verrà preso come input e convertito nel numero decimale in base al valore di Obase e Ibase. Qui, Obase è impostato su 10 per la conversione del numero decimale, Ibase è impostato su 16 per prendere il numero di input come numero esadecimale e "avanti Cristo' Il comando viene utilizzato per la conversione.
#!/Bin/Bash
Echo "Digita un numero esagonale"
Leggi hexnum
echo -n "Il valore decimale di $ hexnum ="
echo "obase = 10; ibase = 16; $ hexnum" | avanti Cristo
Produzione:
Esegui lo script con il comando bash e dai qualsiasi numero esadecimale come input per scoprire il valore decimale.
$ Bash Hextodec1.sh
Esempio-2: usando ibase, argomento della riga di comando e bc
Crea un file bash denominato hextodec2.sh e aggiungi il seguente codice. In questo esempio, il valore di input deve dare nell'argomento della riga di comando, che verrà letto da $@. Qui, solo Ibase con 16 valore viene utilizzato per convertire HEX nel numero decimale.
#!/Bin/Bash
echo -n "Il valore decimale di $@="
echo "ibase = 16; $@" | BC
Produzione:
Esegui lo script con comando bash, nome file e un numero esadecimale come argomento della riga di comando. Qui, Ff è dato come argomento della riga di comando che viene preso come valore esadecimale.
$ Bash Hextodec2.sh ff
Esempio-3: utilizzando il metodo Printf
Un'altra opzione per la conversione di hex in numero decimale è printf. '%D' Specificatore di formato viene utilizzato in printf Metodo per convertire qualsiasi numero in numero decimale. Crea un file bash denominato hextodec3.sh e aggiungi il seguente codice. Secondo questo script, un numero esadecimale verrà preso come input e viene utilizzato in printf metodo con %D Per stampare il valore decimale.
#!/Bin/Bash
Echo "Digita un numero esagonale"
Leggi hexnum
printf "Il valore decimale di $ hexnum =%d \ n" $ ((16#$ hexnum))
Produzione:
Esegui lo script con il comando bash e dai qualsiasi numero esadecimale come input per scoprire il valore decimale.
$ Bash Hextodec3.sh
Esempio-4: usando le doppie parentesi
C'è un altro modo per convertire HEX al numero decimale senza usare IBASE, OBASE e BC o Printf Metodo. È possibile utilizzare l'espressione a doppia staffa con 16 basi per convertire l'esagono nel numero decimale. Crea un file bash denominato hextodec4.sh e aggiungi il seguente codice. Qui, il comando Echo prenderà il numero come esadecimale e stampa l'output nel sistema di numeri decimale.
#!/Bin/Bash
Echo "Digita un numero esagonale"
Leggi hexnum
Echo $ ((16#$ hexnum))
Produzione:
Esegui lo script con il comando bash e dai qualsiasi numero esadecimale come input per scoprire il valore decimale.
$ Bash Hextodec4.sh
Esempio-5: conversione dell'elenco dei numeri esadecimali
Supponiamo che tu abbia un file di testo chiamato 'Exlist.TXT' che contiene il seguente elenco di numeri esadecimali.
Eslista.TXTCrea un file bash denominato hextodec5.sh e aggiungere il seguente codice per convertire ogni valore esagonale di eslista.TXT nel valore decimale. Qui, Obase, Ibase e BC sono usati per la conversione. Mentre Loop viene utilizzato per leggere ogni valore esagonale dal file di testo, convertire in valore decimale e stampare.
#!/Bin/Bash
mentre leggi il numero
Fare
echo -n "Il valore decimale di $ numero (hex) ="
echo "obase = 10; ibase = 16; $ numero" | avanti Cristo
Fatto < hexList.txt
Produzione:
Esegui lo script con il comando bash. Ci sono cinque valori esadecimali nel file di testo e l'output mostra cinque valori decimali dopo la conversione.
$ Bash Hextodec5.sh
Questo tutorial mostra diversi modi per convertire HEX in valori decimali usando lo script bash. Puoi seguire uno dei modi per il tuo scopo di conversione. Puoi anche convertire altri sistemi numerici utilizzando gli script menzionati in questo tutorial semplicemente modificando il valore di base.