Excel – Przeliczanie liczb z różnych systemów liczbowych.

Czasami istnieje potrzeba przeliczenia liczby z jednego systemu liczbowego do innego. Mamy pewną liczbę zapisaną w systemie szesnastkowym i chcemy wiedzieć jaka jest wartość danej liczby w systemie dziesiętnym.

Oto prosty przykład: znalazłem pewne zestawienie kolorów (czasami zamiast szukać odpowiedniego koloru w różnych tabelach, kod interesującego mnie koloru wyciągam ze źródła strony).

Spodobał mi się kolor #66FF66 i chciałbym stworzyć jakiś rysunek w którym ten kolor będzie używany. Kod koloru jest podany w systemie szesnastkowym. Dwie pierwsze „cyfry” czyli 66 odpowiadają za składową czerwoną (red), dwie kolejne czyli FF za składową zieloną (green) a dwie ostatnie czyli znów 66 odpowiadają za składową niebieską (blue). Jeśli chciałbym ten sam kolor dodać do palety kolorów w programie graficznym (np. Paint, Photoshop) to składowe R, G, B należy podać w systemie dziesiętnym! (aby pojawiło się to okienko należy w Paincie kliknąć w przycisk Edytuj kolory).

Jak widzisz w polach tekstowych gdzie wpisuje się poszczególne składowe kolorów nie możemy wpisać FF. Również liczba 66 w systemie szesnastkowym to nie jest 66 w systemie dziesiętnym tylko 102.

Jak przeliczyć liczbę z systemu szesnastkowego (heksadecymalny) na dziesiętny (decymalny), aby wiedzieć, że 66 w hex to 102 w dec, a FF w hex to 255 w dec?

Istnieje wiele różnych narzędzi do tego celu. W przypadku kolorów np. na Wikipedii znajduje się Lista kolorów gdzie kody kolorów są podane w formacie liczby szesnastkowej jak i są wyszczególnione poszczególne składowe w systemie dziesiętnym. Ale nie zawsze uda nam się znaleźć tak czytelne zestawienie, albo chcemy przeliczyć jakąś inną liczbę (nie kod koloru) z jednego systemu liczbowego na drugi. Tutaj istnieje możemy:

  • Znaleźć gotowe narzędzie w Internecie
  • Skorzystać z kalkulatora w systemie Windows (na MacOS systemowy kalkulator działa równie dobrze jak ten windowsowy)
  • Skorzystać z pomocy Excela

Poniżej omówię dwa ostatnie rozwiązania.

Systemowy kalkulator

W pierwszym kroku należy przełączyć kalkulator ze standardowego na programisty.

Kalkulator nieco zmienił wygląd. W kolejnym kroku należy kliknąć w napis HEX (lub nacisnąć klawisz F5) gdyż z tego systemu liczbowego będziemy przeliczać liczby. Obok napisu HEX pojawi się „brązowa kreseczka” mówiąca o tym, że w tej chwili wprowadzamy liczby w systemie szesnastkowym.

Wpiszmy jakąś liczbę np. 66. Obok napisu DEC pojawi się liczba 102. Jeśli chcesz przekonwertować inną liczbę z systemu szesnastkowego na dziesiętny to należy nacisnąć klawisz ESC (lub kliknąć na kalkulatorze w przycisk CE) i wprowadzić inną wartość.

Jeśli chciałbyś przeliczyć liczbę z systemu dziesiętnego na szesnastkowy należy kliknąć w napis DEC tak aby obok DEC była „brązowa kreseczka” lub nacisnąć klawisz F6. Następnie wprowadź jakąś wartość np. 255 a obok napisu HEX pojawi się wartość w systemie szesnastkowym, czyli FF.

Kalkulator pozwala również na przeliczanie liczb z/do systemu ósemkowego (OCT) i binarnego (BIN), ale tych systemów liczbowych używa się dużo rzadziej.

Excel

Pobierz przykładowy arkusz

Excel posiada funkcje pozwalające na zamianę liczb z czterech najpopularniejszych systemów liczbowych (szesnastkowy, dziesiętny, ósemkowy, dwójkowy) do dowolnego z pozostałych trzech.

Przykładowo chcąc przeliczyć naszą liczbę FF z systemu szesnastkowego na dziesiętny mogę użyć funkcji:

=SZESN.NA.DZIES("FF")

(argument funkcji powinien być w cudzysłowie gdyż dla Excela, który natywnie myśli w systemie dziesiętnym znak F to tekst a nie cyfra).

Chcąc przekonwertować liczbę 255 z systemu dziesiętnego na szesnastkowy mogę użyć funkcji:

=DZIES.NA.SZESN(255)

Oto spis wszystkich funkcji, które przeliczają liczby z jednego systemu liczbowego do innego:

Z dwójkowego (binarnego)

=DWÓJK.NA.ÓSM – na ósemkowy
=DWÓJK.NA.DZIES – na dziesiętny
=DWÓJK.NA.SZESN – na szesnastkowy

Z ósemkowego (oktalnego)
=ÓSM.NA.DWÓJK – na dwójkowy
=ÓSM.NA.DZIES – na dziesiętny
=ÓSM.NA.SZESN – na szesnastkowy

Z dziesiętnego (decymalnego)
=DZIES.NA.DWÓJK – na dwójkowy
=DZIES.NA.ÓSM – na ósemkowy
=DZIES.NA.SZESN – na szesnastkowy

Z szesnastkowego (heksadecymalnego)
=SZESN.NA.DWÓJK – na dwójkowy
=SZESN.NA.ÓSM – na ósemkowy
=SZESN.NA.DZIES – na dziesiętny

Te cztery systemy liczbowe używa się w informatyce. No dobrze, ale co by było, gdybym chciał przeliczyć liczbę z innego mniej popularnego pozycyjnego systemu liczbowego?

Inne pozycyjne systemy liczbowe

Pod warsztat weźmy dwunastkowy (duodecymalny) system liczbowy. Nie jest on obecnie dość powszechnie stosowany, ale może nasze rozważania przydadzą się badaczom starych kultur. Zwróć uwagę, że np. na zegarze znajduje się 12 godzin, w imperialnych jednostkach z kolei jedna stopa składała się z 12 cali, cal to 12 linii, linia to 12 punktów.

Istnieje w Excelu możliwość konwersji liczby z systemu dziesiętnego do dowolnego (maksymalna podstawa to 36) systemu liczbowego za pomocą funkcji DZIESIĘTNA. W drugą stronę z kolei można użyć funkcji PODSTAWA. Pierwszy argument obu funkcji, to liczba jaką chcemy przekonwertować a drugi argument to podstawa (w naszym przypadku będzie to 12).

Przykładowo chcąc zamienić liczbę 255 z dziesiętnego na dwunastkowy system liczbowy należy wpisać formułę:

=PODSTAWA(255;12)

Da nam to w wyniku liczbę 193. Aby zamienić liczbę 193 z dwunastkowego na dziesiętny system liczbowy należy wpisać formułę:

=DZIESIĘTNA("193";12)

Oczywiście można używać funkcji PODSTAWA z odpowiednim parametrem zamiast funkcji DZIS.NA.DWÓJK, DZIES.NA.ÓSM i DZIES.NA.SZESN a funkcji DZIESIĘTNA z odpowiednim parametrem zamiast funkcji DWÓJK.NA.DZIES, ÓSM.NA.DZIES, SZESN.NA.DZIES, ale według mnie arkusz jest czytelniejszy, gdy używamy „klasycznych” funkcji do konwersji na inne systemy liczbowe.

Ten wpis został opublikowany w kategorii funkcje i oznaczony tagami , , , , , , , , , , , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.