Konverter heksadesimal til desimal i bash

Konverter heksadesimal til desimal i bash
Fire typer tallsystemer er populære i datasystemer. Dette er desimal, binær, oktal og heksadesimal. Det binære systemet er 2 basert og alle aritmetiske beregninger gjøres av datamaskiner i binært system. Den bruker bare to sifre, 0 og 1 for beregning. Nummersystemet som vi bruker for generell beregning er desimalsystem som er 10 basert. 0 til 9 tall brukes i desimalsystemet for beregning. Oktaltallsystemet er 8 basert og representert med 0 til 7 sifre. Det heksadesimale tallsystemet er 16 basert og bruker 0 til 9 og A til F -tegn for å representere tallet. Du kan enkelt konvertere ett nummer til et annet tallsystem ved hjelp av bash -skriptet. Hvordan du kan konvertere heksadesimal (HEX) -nummer til desimaltall i bash vises i denne opplæringen ved hjelp av forskjellige eksempler.

Eksempel 1: Bruke OBase, IBase og BC

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.tekst
AB05
Ff
ABCD
Accd
SENG

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