niedziela, 19 czerwca 2016

System pozycyjny szesnastkowy

Do standardowych obliczeń w matematyce najczęściej używamy systemu dziesiętnego (nazywanego również systemem arabskim), gdzie podstawą jest liczba 10. W informatyce przyjęto stosowanie systemu dwójkowego. Jednak niejednokrotnie okazuje się, że zapisy przedstawione w tym systemie są długie i wyjątkowo nieczytelne. Dlatego też dzisiejszy post będzie mówił o systemie szesnastkowym  - zwanym również systemem heksadecymalnym. Jeśli budowaliście kiedykolwiek swoje własne strony, mogło Was zastanowić, co oznaczają zawiłe ciągi znaków np. FF FF FF. Postaram się to wyjaśnić.


Jak sama nazwa wskazuje podstawą w tym systemie jest liczba 16 – czyli do budowy liczb wykorzystujemy 16 cyfr. Pierwszych 10 cyfr jest identyczne jak w systemie dziesiętnym (od 0 do 9), natomiast kolejne 6 cyfr zapisujemy stosując do tego alfabet łaciński (od A do F). Zwróćcie też uwagę, że w systemie dziesiętnym 10 nie jest cyfrą a liczbą. Podobnie jest z 16 w systemie szesnastkowym.

Poniższa tabela obrazuje system szesnastkowy:









































































System dziesiętny



System szesnastkowy



0



0



1



1



2



2



3



3



4



4



5



5



6



6



7



7



8



8



9



9



10



A



11



B



12



C



13



D



14



E



15



F




 

Zauważcie proszę, że każdą cyfrę w systemie szesnastkowym możemy zapisać przy użyciu dokładnie 4 cyfr z systemu dwójkowego (binarnego) a wynika to z prostej zależności

16 = 2 · 2 · 2 · 2 = 24 (2 podniesione do 4 potęgi).


 

 

Przykład zastosowań:

  • Internetowe Adresy IP w wersji 6.

  • Parametry układów elektronicznych.

  • Adresy sprzętowe urządzeń sieciowych.

  • W programowaniu system szesnastkowy sprawdza się przy zapisie dużych liczb, takich jak adresy pamięci, zakresy parametrów itp.

  • Wiele programów do obróbki zdjęć i grafiki pozwala na wybór/wprowadzanie kodu koloru w formie szesnastkowej np. Photoshop oraz GIMP.

  • Budując własną stronę w Internecie, kiedy chcemy ustawić konkretny kolor pewnego elementu korzystając przy okazji z palety kolorów RGB (od angielskich słów Red, Green, Blue – Czerwony, Zielony i Niebieski).  Nasycenie każdej z barw jest reprezentowane w systemie szesnastkowym, ponieważ krótki zapis pewnych liczb jest w informatyce niezwykle pożądany (choćby dla czytelności napisanego przez Was programu – pisanie stron nawet w języku HTML to forma programowania). Do reprezentacji używamy 6 cyfr z systemu szesnastkowego gdzie 000000 oznacza kolor czarny, FFFFFF – kolor biały, itd.


Przetestujcie to sami korzystając np. z tej strony (uwaga – strona jest w języku angielskim): http://www.rapidtables.com/convert/color/rgb-to-hex.htm

  • W 1863 zaproponowano nowe cyfry oraz standard zapisu i pomiaru czasu (zegar) oraz lokalizacji (kompas) w systemie pozycyjnym szesnastkowym.


 

 

Sposób przeliczania systemu szesnastkowego na znany Wam system dziesiętny.

Metoda przeliczania jest identyczna jak dla innych systemów liczbowych (np. systemu dwójkowego).

Dla przykładu weźmy liczbę zapisaną w systemie szesnastkowym jako 7FF.

Podstawą jest liczba 16, więc należy mnożyć kolejne cyfry przez kolejne potęgi liczby 16. Liczenie wykładnika potęgi rozpoczynamy od strony prawej, tzn. ostatnia cyfra ma potęgę 0, przedostatnia 1, druga od końca – 2 itd.

Przypominam, że kolejne 6 cyfr zapisywane jest w alfabecie łacińskim, a więc liczba A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.

7FF = (7 · 162) + (15 · 161) + (15 · 160) = 7 · 256 + 15 · 16 + 15 · 1 =


= 1792 + 240 + 15 = 2047.


Wróćmy jeszcze na chwilę do systemu dwójkowego i sposobu reprezentacji barwy zakodowanej w systemie szesnastkowym w następujący sposób 591B4A (reprezentuje kolor ciemno-fioletowy).

Zapis dwójkowy (binarny) tej liczby jest następujący: 0101 1001 0001 1011 0100 1010.

W kolejnym poście spróbuję przybliżyć Wam system ósemkowy – również powszechnie używany w informatyce niemniej jednak do innego celu.  :-)

Brak komentarzy:

Prześlij komentarz