encyklopedia.run.place

System szesnastkowy

System szesnastkowy (zwany też hexadecymalnym) jest pozycjonalnym systemem liczbowym o podstawie 16. W jego zapisie używa się cyfr od 0 do 9 oraz liter A–F, które odpowiadają wartościom 10–15. System ten jest szczególnie popularny w informatyce i elektronice, gdzie służy m.in. do przedstawiania adresów pamięci, kodów znaków oraz wartości kolorów.

Historia

Pierwsze wzmianki o systemie szesnastkowym pojawiły się w latach 1954 w kontekście wczesnych komputerów, które operowały na słowach o długości 4 bity (nibblach). W praktyce przyczyniło się do tego rozwój mikroprocesorów oraz języków programowania, które wykorzystywały krótkie reprezentacje binarnych danych.

Budowa i zapis

W systemie szesnastkowym każdy znak ma wagę równą potędze liczby 16:

… d₃·16³ + d₂·16² + d₁·16¹ + d₀·16⁰

gdzie dₙ jest jedną z cyfr 0–9 lub liter A–F. Przykładowo liczba 2B3₁₆ oznacza:

2·16² + 11·16¹ + 3·16⁰ = 512 + 176 + 3 = 691₁₀

Konwersje między systemami

Najczęściej zachodzi potrzeba przeliczania liczb między systemem szesnastkowym a:

Przykładowe zastosowania

System szesnastkowy znajduje liczne zastosowanie w dziedzinach technicznych i programistycznych:

  • Reprezentacja adresów pamięci w komputerze (np. 0x7FF0A3B2);
  • Kodowanie znaków w zestawie ASCII i Unicode (np. znak 'A' ma kod 0x41);
  • Definicja kolorów w grafice komputerowej – popularny format #RRGGBB (np. #FF0000 = czysty czerwony);
  • Wprowadzanie stałych liczbowych w wielu językach programowania (0x1A3F w C, 0xFF w Pythonie);
  • Debugowanie i analizowanie zrzutów pamięci przy pomocy narzędzi typu debugger.

Zalety i wady

Zalety Wady
Kompaktowa zapis liczby binarnej – 4 bity = 1 cyfra szesnastkowa. Trudniejszy odczyt dla osób nieprzyzwyczajonych do liter A–F.
Łatwe konwertowanie na i z systemu binarnego. Nieintuicyjny w kontekście codziennych obliczeń arytmetycznych.

Przykład konwersji z systemu binarnego

Konwersję binarnej liczby 11010111₂ na szesnastkową można wykonać w trzech krokach:

  1. Podziel liczbę na grupy po 4 bity od prawej strony: 1101 0111;
  2. Przekształć każdą grupę na odpowiadającą jej cyfrę szesnastkową:
    • 1101₂ = D₁₆;
    • 0111₂ = 7₁₆;
  3. Zapisz wynik: 0xD7.

Podobne systemy

Do systemu szesnastkowego najbliższe są:

  • system ósemkowy (podstawa 8), używany m.in. w tradycyjnych systemach operacyjnych;
  • system binarny (podstawa 2), będący podstawą wszystkich operacji na poziomie sprzętowym.

W literaturze i edukacji

W podręcznikach informatyki i kursach programowania system szesnastkowy jest omawiany już na poziomie szkoły średniej oraz w studiach inżynierskich, np. w publikacjach Donald Knuth – Art of Computer Programming.

Linki wewnętrzne

Przeczytaj także: