Konwertuj heksadecimal na dziesiętne w Bash

Konwertuj heksadecimal na dziesiętne w Bash
Cztery rodzaje systemów liczbowych są popularne w systemach komputerowych. Są to dziesiętne, binarne, ośmiorodkowe i sześciokadcikowe. Układ binarny jest 2 oparty na 2, a wszystkie obliczenia arytmetyczne są wykonywane przez komputer w układzie binarnym. Do obliczeń używa tylko dwóch cyfr, 0 i 1. System liczb, którego używamy do ogólnych obliczeń, jest system dziesiętny, który jest 10 oparty na. Od 0 do 9 liczb są używane w układzie dziesiętnym do obliczania. System liczby ósemek jest 8 oparty na i reprezentowany przez od 0 do 7 cyfr. System liczb sześciokadciaka jest 16 oparty na 16 do 9 i od A do F, aby reprezentować liczbę. Możesz łatwo przekonwertować jeden numer na inny system liczb za pomocą skryptu Bash. Jak możesz przekonwertować liczbę heksadecimal (sześciokątną) na liczbę dziesiętną w Bash, jest pokazany w tym samouczku przy użyciu różnych przykładów.

Przykład-1: Korzystanie z OBASE, IBASE i BC

Jednym z prostych sposobów konwersji dowolnego systemu liczb na inny system liczb jest użycie IBase, OBASE i BC. Utwórz plik bash o nazwie Hextodec1.cii i dodaj następujący kod. Zgodnie z tym przykładem liczba sześciokątna zostanie przyjęta jako wejście i przekonwertowany na liczbę dziesiętną w oparciu o wartość Obase i Ibase. Tutaj OBASE jest ustawiony na 10 do konwersji liczby dziesiętnej, IBase jest ustawiony na 16, aby wziąć numer wejściowy jako numer szesnastkowy i 'pne' Polecenie służy do konwersji.

#!/bin/bash
echo „Wpisz numer sześciokątny”
Przeczytaj Hexnum
echo -n „wartość dziesiętna $ hexnum =”
echo "Obase = 10; ibase = 16; $ hexnum" | pne

Wyjście:

Uruchom skrypt z poleceniem bash i podaj dowolną liczbę szesnastkową jako dane wejściowe, aby znaleźć wartość dziesiętną.

$ bash hextodec1.cii

Przykład-2: Korzystanie z IBase, argumentu wiersza poleceń i BC

Utwórz plik bash o nazwie hextodec2.cii i dodaj następujący kod. W tym przykładzie wartość wejściowa musi podać argument wiersza poleceń, który zostanie odczytany przez $@. Tutaj tylko ibase z 16 wartością służy do konwersji heksów na liczbę dziesiętną.

#!/bin/bash
echo -n „wartość dziesiętna $@=”
echo "ibase = 16; $@" | bc

Wyjście:

Uruchom skrypt z poleceniem bash, nazwa pliku i numer szesnastkowy jako argument wiersza poleceń. Tutaj, Ff jest podany jako argument wiersza poleceń, który jest traktowany jako wartość sześciokątna.

$ bash hextodec2.sh ff

Przykład-3: przy użyciu metody printf

Kolejną opcją przekształcenia sześciokątnego na liczbę dziesiętną jest printf. '%D' specyfikator formatu jest używany w printf metoda konwertowania dowolnej liczby na liczbę dziesiętną. Utwórz plik bash o nazwie Hextodec3.cii i dodaj następujący kod. Zgodnie z tym skryptem liczba sześciokątna zostanie przyjęta jako dane wejściowe i jest używany w printf metoda z %D Aby wydrukować wartość dziesiętną.

#!/bin/bash
echo „Wpisz numer sześciokątny”
Przeczytaj Hexnum
printf „wartość dziesiętna $ hexnum =%d \ n” $ ((16#$ hexnum))

Wyjście:

Uruchom skrypt z poleceniem bash i podaj dowolną liczbę szesnastkową jako dane wejściowe, aby znaleźć wartość dziesiętną.

$ bash hextodec3.cii

Przykład-4: Za pomocą podwójnych nawiasów

Istnieje inny sposób konwersji sześciokątnej na liczbę dziesiętną bez użycia metody IBase, OBASE i BC lub PrintF. Możesz użyć ekspresji podwójnych nawiasów z 16 bazą do konwersji sześciokątnej na liczbę dziesiętną. Utwórz plik bash o nazwie Hextodec4.cii i dodaj następujący kod. Tutaj polecenie ECHO weźmie liczbę jako sześciokątne i wydrukuje wyjście w systemie liczb dziesiętnych.

#!/bin/bash
echo „Wpisz numer sześciokątny”
Przeczytaj Hexnum
Echo $ ((16#$ hexnum))

Wyjście:

Uruchom skrypt z poleceniem bash i podaj dowolną liczbę szesnastkową jako dane wejściowe, aby znaleźć wartość dziesiętną.

$ bash hextodec4.cii

Przykład-5: Przekształcenie listy liczb szesnastkowych

Załóżmy, że masz nazwany plik tekstowy „Heksla.tekst' który zawiera następującą listę liczb sześciokątnych.

Heks.tekst
AB05
Ff
Abcd
Accd
ŁÓŻKO

Utwórz plik bash o nazwie Hextodec5.cii i dodaj następujący kod, aby przekonwertować każdą wartość sześciokątną heks.tekst do wartości dziesiętnej. Tutaj do konwersji używane są Obase, Ibase i BC. chwila Pętla służy do odczytu każdej wartości sześciokątnej z pliku tekstowego, konwersji na wartość dziesiętną i wydrukuj.

#!/bin/bash
podczas przeczytania numeru
Do
echo -n „wartość dziesiętna $ liczba (hex) =”
echo "obase = 10; ibase = 16; $ liczba" | pne
zrobione < hexList.txt

Wyjście:

Uruchom skrypt z poleceniem Bash. W pliku tekstowym jest pięć wartości sześciokątnych, a wyjście pokazuje pięć wartości dziesiętnych po konwersji.

$ bash hextodec5.cii

Ten samouczek pokazuje wiele sposobów konwersji hex na wartości dziesiętne za pomocą skryptu Bash. Możesz zastosować dowolny sposób na cel konwersji. Możesz także przekonwertować inne systemy liczb za pomocą skryptów wymienionych w tym samouczku, zmieniając wartość podstawową.