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.tekstUtwó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ą.