Wprowadzenie
Być może spotkałeś się z liczbami, które są zapisywane z dziwnymi literami, a czasami również poprzedzone zerem i “iksem” na początku, takie jak 0x23DA.
Dlaczego ktoś wydziwia i zapisuje liczby w taki sposób? Jak zapisać liczbę w systemie szesnastkowym?
Notacja szesnastkowa
Wprowadzenie
Zapis szesnastkowy (inaczej notacja szesnastkowa) jest systemem liczbowym, w którym używa się 16 symboli zamiast dziesięciu, jak w przypadku systemu dziesiętnego. Symbole te to cyfry od 0 do 9 oraz litery A, B, C, D, E i F, które reprezentują kolejno wartości 10, 11, 12, 13, 14 i 15
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | (16) |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | (10) |
Wartości od 0 do 15 można zapisać za pomocą dokładnie 4 bitów. Jak wiadomo jeden bajt ma ich 8, więc zapis szesnatkowy wydaje się idealny do zapisania wartości bajtu za pomocą zaledwie dwóch znaków:
Każda z połówek bajtów nazywana jest nibblem. Istnieją również polskie określenia na połowę bajtu: półbajt oraz tetrada, jednak przed napisaniem tego artykułu nigdy wcześniej o nich nie słyszałem 😉
No dobrze, ale po co?
Jak wiadomo, nadając fizycznie jakąś wartość mamy do dyspozycji tylko zera i jedynki
1 – jest napięcie / wysoki stan napięcia (lub też płynie prąd)
0 – brak napięcia / niski stan napięcia
Załóżmy, że otrzymaliśmy taką wartość liczbową, zapisaną binarnie:
Przetłumaczmy ją teraz na dwa rodzaje notacji: szesnastkową i dziesiętną:
Na razie nie widać wielkiej różnicy.
Ale uwaga, teraz dostaliśmy na magistrali następną wartość, która różni się jedynie jednym bitem od poprzedniej:
Spójrzmy jak wygląda nowa liczba w notacjach szesnatkowej i dziesiętnej:
W zapisie szesnastkowym zmienił się tylko jeden znak – jest to logiczne, ponieważ zmiana nastąpiła tylko w jednym nibblu, a każdy nibble zapisywany jest jednym znakiem.
A co się stało z liczbą dziesiętną? Ma zupełnie inną długość i zupełnie inną wartość!
Jeden bit wystarczył, aby zupełnie zmienić liczbę w zapisie dziesiętnym.
Wizualizacja
Kolejną istotną rzeczą jest wizualizacja.
Jeśli weźmiemy liczbę:
0x18 00 00 FF FF
Już na pierwszy rzut oka widać, że dwa ostatnie bajty wypełnione są samymi jedynkami, a trzeci i czwarty bajt wypełnione są zerami.
Ta sama liczba zapisana w systemie dziesiętnym da nam wartość:
103 079 280 639
Nie dając nam żadnej wskazówki co do tego jaką wartość mogą mieć poszczególne bajty składowe.
Podsumowanie
Zalety systemu szesnastkowego:
- Powiązanie naturalnej reprezentacji binarnej z liczbą – dwa znaki na jeden bajt
- Niewielkie zmiany liczby Hex przy niewielkich zmianach binarnych
- Krótsza liczba
- Na pierwszy rzut oka widać jakie są wartości binarne
Dodaj komentarz