En av de enkle måtene å konvertere et hvilket som helst tallsystem til et annet tallsystem er å bruke IBase, Obase og BC. Lag en bash -fil som heter Hextodec1.sh og legg til følgende kode. I følge dette eksemplet vil et sekskantnummer bli tatt som input og konvertert til desimaltallet basert på verdien av OBase og IBase. Her er Obase satt til 10 for konvertering av desimaltall, IBase er satt til 16 for å ta inngangsnummeret som sekskantnummer og 'BC ' Kommando brukes til konvertering.
#!/bin/bash
ekko "Type A HEX Number"
Les hexnum
ekko -n "Desimalverdien til $ hexnum ="
ekko "Obase = 10; iBase = 16; $ hexnum" | BC
Produksjon:
Kjør skriptet med bash -kommando og gi ethvert heksadesimalt nummer som inngang for å finne ut desimalverdien.
$ bash hextodec1.sh
Eksempel-2: Bruke IBase, Command Line Argument og BC
Lag en bash -fil som heter Hextodec2.sh og legg til følgende kode. I dette eksemplet må inngangsverdien gi i kommandolinjeargumentet, som vil bli lest av $@. Her brukes bare IBase med 16 verdi til å konvertere hex til desimalnummeret.
#!/bin/bash
ekko -n "Desimalverdien til $@="
ekko "iBase = 16; $@" | BC
Produksjon:
Kjør skriptet med bash -kommando, filnavn og et heksadesimalt nummer som kommandolinjeargument. Her, Ff blir gitt som kommandolinjeargument som er tatt som hex -verdi.
$ bash hextodec2.sh ff
Eksempel-3: Bruke printf-metode
Et annet alternativ for å konvertere hex til desimaltallet er printf. '%d' Formatspesifikasjon brukes i printf metode for å konvertere et hvilket som helst tall til desimalnummer. Lag en bash -fil som heter Hextodec3.sh og legg til følgende kode. I følge dette skriptet vil et sekskantnummer bli tatt som input og det brukes i printf metode med %d For å skrive ut desimalverdien.
#!/bin/bash
ekko "Type A HEX Number"
Les hexnum
printf "desimalverdien til $ hexnum =%d \ n" $ ((16#$ hexnum))
Produksjon:
Kjør skriptet med bash -kommando og gi ethvert heksadesimalt nummer som inngang for å finne ut desimalverdien.
$ bash hextodec3.sh
Eksempel-4: Bruke doble parenteser
Det er en annen måte å konvertere hex til desimaltallet uten å bruke IBase, OBase og BC eller Printf -metoden. Du kan bruke Double Brackets Expression med 16 base for å konvertere hex til desimalnummeret. Lag en bash -fil som heter Hextodec4.sh og legg til følgende kode. Her vil Echo -kommandoen ta nummeret som hex og skrive ut utdataene i desimalnummersystemet.
#!/bin/bash
ekko "Type A HEX Number"
Les hexnum
ekko $ ((16#$ hexnum))
Produksjon:
Kjør skriptet med bash -kommando og gi ethvert heksadesimalt nummer som inngang for å finne ut desimalverdien.
$ bash hextodec4.sh
Eksempel-5: Konvertere listen over heksadesimale tall
Anta at du har en tekstfil som heter 'Hexlist.tekst' som inneholder følgende liste over sekskantnumre.
Hexlist.tekstLag en bash -fil som heter Hextodec5.sh og legg til følgende kode for å konvertere hver sekskantverdi på Hexlist.tekst inn i desimalverdien. Her brukes Obase, IBase og BC til konvertering. samtidig som Loop brukes til å lese hver sekskantverdi fra tekstfilen, konvertere til desimalverdi og utskrift.
#!/bin/bash
mens du leser nummer
gjøre
ekko -n "Desimalverdien til $ tall (hex) ="
ekko "Obase = 10; iBase = 16; $ nummer" | BC
Ferdig < hexList.txt
Produksjon:
Kjør skriptet med bash -kommando. Det er fem sekskantverdier i tekstfilen, og utdataene viser fem desimalverdier etter konvertering.
$ BASH HEXTODEC5.sh
Denne opplæringen viser flere måter å konvertere hex til desimalverdier ved hjelp av bash -skriptet. Du kan følge noen av måtene for konverteringsformålet ditt. Du kan også konvertere andre tallsystemer ved å bruke skriptene som er nevnt i denne opplæringen bare ved å endre basisverdien.