Narzędzia
PL

Co to jest system szesnastkowy?

System szesnastkowy (heksadecymalny, w skrócie hex) to system liczbowy o podstawie 16. Liczby zapisuje się w nim za pomocą 16 symboli – 0–9 i A–F – i jest to standardowy, skrócony zapis danych binarnych w informatyce: od kolorów na stronach WWW po adresy pamięci.

System szesnastkowy w jednym zdaniu

System szesnastkowy to pozycyjny system liczbowy o podstawie 16: każda cyfra jest warta 16 razy więcej niż cyfra po jej prawej stronie, a wartości od 10 do 15 zapisuje się literami od A do F. Aby zaznaczyć, że liczba jest szesnastkowa, programiści piszą 0x1A (C, Java, JavaScript, Python), #1A2B3C w kolorach CSS, 1Ah w asemblerze lub 1A₁₆ w matematyce.

Tabela cyfr szesnastkowych od 0 do 15

DziesiętnieHexBinarnieDziesiętnieHexBinarnie
000000881000
110001991001
22001010A1010
33001111B1011
44010012C1100
55010113D1101
66011014E1110
77011115F1111

Liczenie w systemie szesnastkowym

W hex liczy się tak jak w systemie dziesiętnym, ale przeniesienie następuje po F, a nie po 9: … 8, 9, A, B, C, D, E, F, 10, 11 … 19, 1A … 1F, 20 … FF, 100. Tutaj 10 oznacza szesnaście, a 100 – 16 × 16 = 256. Dwie cyfry hex obejmują jeden bajt (00–FF = 0–255), cztery cyfry sięgają do FFFF = 65 535, a osiem – do FFFFFFFF = 4 294 967 295.

Dlaczego komputery używają systemu szesnastkowego

Komputery przechowują wszystko w postaci binarnej, ale długie ciągi zer i jedynek trudno się czyta i łatwo w nich o pomyłkę. Ponieważ 16 = 2⁴, jedna cyfra hex odpowiada dokładnie czterem bitom (tetradzie, ang. nibble), a dwie cyfry hex – jednemu bajtowi. Zamiana między hex a systemem binarnym to proste podstawianie cyfra po cyfrze, a zapis hex jest czterokrotnie krótszy: 1101 1110 1010 1101 to po prostu DEAD. System dziesiętny nie ma tak prostej zależności z binarnym, dlatego rzadko używa się go do surowych danych.

Zamiana hex na dziesiętny i z powrotem

Nasze konwertery robią to wszystko natychmiast i pokazują każdy krok.

Gdzie używa się systemu szesnastkowego

System szesnastkowy, dziesiętny, ósemkowy i binarny – porównanie

SystemPodstawaCyfryZapis liczby 255Typowe zastosowanie
Binarny (dwójkowy)20–111111111Sprzęt, flagi bitowe
Ósemkowy80–7377Uprawnienia plików w Uniksie (chmod 755)
Dziesiętny100–9255Liczby na co dzień
Szesnastkowy160–9, A–FFFBajty, kolory, adresy, hashe

Liczby ujemne w systemie szesnastkowym

Sam zapis hex nie ma specjalnego znaku, dlatego liczby ujemne przechowuje się zwykle w kodzie U2 (uzupełnień do dwóch): najstarszy bit wartości o stałym rozmiarze oznacza, że liczba jest ujemna. Jako bajt ze znakiem 7F to 127, 80 to −128, a FF to −1; jako 32-bitowa liczba całkowita FFFFFFFF to −1. W matematyce i w naszym kalkulatorze możesz też po prostu napisać znak minus: −1A = −26.

Najczęściej zadawane pytania

Dlaczego w systemie szesnastkowym są litery?

Podstawa 16 wymaga szesnastu jednoznakowych cyfr, a cyfr arabskich jest tylko dziesięć. Litery A–F oznaczają wartości 10–15. Wielkie i małe litery znaczą to samo: ff = FF = 255.

Co oznacza 0x przed liczbą?

Oznacza liczbę szesnastkową w C, C++, Javie, JavaScripcie, Pythonie i wielu innych językach: 0x10 to 16, a nie dziesięć. W CSS kolory poprzedza się zamiast tego znakiem #, a w asemblerze często dodaje się na końcu h (10h).

Czy system szesnastkowy to to samo co Base64?

Nie. Hex zapisuje każdy bajt jako dwa znaki z zakresu 0–9 i A–F, więc dane zajmują dwa razy więcej miejsca, ale łatwo je czytać bajt po bajcie. Base64 używa 64 znaków i pakuje 3 bajty w 4 znaki, co jest bardziej zwarte (narzut ok. 33%), ale nieczytelne na poziomie pojedynczych bajtów.

Ostatnia aktualizacja: