System binarny, dziesiętny i szesnastkowy: jak przechodzić z jednego na drugi

Zamiana między systemami liczbowymi wydaje się magią, dopóki nie zobaczysz, że zawsze chodzi o ten sam pomysł: wartość cyfry zależy od miejsca, które zajmuje. Nauczysz się tu ręcznie przechodzić z binarnego na dziesiętny i odwrotnie, czytać system szesnastkowy bez obaw i zamieniać tekst na bity, z rozwiązanymi obliczeniami i tabelą od 0 do 15 pod ręką.

Zaktualizowano:

Czym jest system pozycyjny

W liczbie dziesiętnej 4095 cyfra 4 nie oznacza 4: oznacza 4000, bo stoi na miejscu tysięcy. Każda pozycja mnoży cyfrę przez potęgę liczby 10 (1, 10, 100, 1000…). To właśnie system pozycyjny, a jego podstawa to liczba różnych używanych cyfr: w systemie dziesiętnym jest ich dziesięć.

System binarny działa tak samo, ale ma podstawę 2: istnieją tylko 0 i 1, a każde miejsce jest warte dwa razy tyle co poprzednie. System szesnastkowy ma podstawę 16: szesnaście cyfr to 0–9 oraz litery A–F, a każde miejsce jest warte 16 razy więcej niż poprzednie. Komputery pracują w systemie binarnym, bo układ elektroniczny musi rozróżniać tylko dwa stany (wyłączony i włączony), a system szesnastkowy to krótki sposób zapisu tych bitów.

Ile jest wart każde miejsce. Znajomość potęg dwójki do 128 na pamięć oszczędza prawie wszystkie obliczenia.
Pozycja (od prawej do lewej)Wartość w systemie binarnymWartość w systemie szesnastkowym
1.11
2.216
3.4256
4.84096
5.1665 536
6.321 048 576
7.6416 777 216
8.128268 435 456

Z systemu binarnego na dziesiętny, ręcznie

Pod każdą cyfrą zapisujesz wartość jej miejsca i sumujesz tylko te miejsca, w których stoi 1. Przykład z liczbą 1101: od prawej do lewej miejsca są warte 1, 2, 4 i 8.

  1. Zapisz liczbę, a pod nią wartość każdej pozycji: 1 1 0 1 nad 8 4 2 1.
  2. Sprawdź, co stoi na każdym miejscu: 1 na miejscu ósemek, 1 na miejscu czwórek, 0 na miejscu dwójek i 1 na miejscu jedynek.
  3. Pomiń miejsca z zerem (tutaj miejsce dwójek).
  4. Dodaj: 8 + 4 + 0 + 1 = 13. Zatem 1101 w systemie binarnym to 13 w systemie dziesiętnym.

Z większą liczbą cyfr jest tak samo: 11111111 to 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, czyli największa wartość mieszcząca się w 8 bitach. A 10110110 to 128 + 32 + 16 + 4 + 2 = 182.

Z systemu dziesiętnego na binarny, przez kolejne dzielenia

Dzielisz liczbę przez 2 raz za razem, zapisując resztę z każdego dzielenia (zawsze 0 lub 1), aż iloraz wyniesie 0. Reszty odczytane od dołu do góry tworzą liczbę binarną. Przykład z liczbą 45:

Odczytując reszty od dołu do góry, dostajesz 101101. Żeby sprawdzić, dodaj: 32 + 8 + 4 + 1 = 45.

Jest też metoda alternatywna, którą wiele osób woli: odejmowanie potęg dwójki od największej do najmniejszej. Dla 200: mieści się 128 (zostaje 72), mieści się 64 (zostaje 8), nie mieszczą się 32 i 16, ale mieści się 8 (zostaje 0). Użyte miejsca to 128, 64 i 8, więc 200 = 11001000.

System szesnastkowy: szesnaście cyfr i tabela pod ręką

Ponieważ nie ma cyfr dla liczb od 10 do 15, używa się liter A, B, C, D, E i F. Jedna cyfra szesnastkowa odpowiada dokładnie czterem bitom (jeden «półbajt», czyli nibble), i dlatego system ten jest tak wygodny: bajt, czyli 8 bitów, zapisujesz za pomocą zaledwie dwóch cyfr szesnastkowych.

Aby zamienić liczbę szesnastkową na dziesiętną, pomnóż każdą cyfrę przez potęgę liczby 16 odpowiadającą jej miejscu i dodaj wyniki. Na przykład 3F = 3 × 16 + 15 = 63, a A3 = 10 × 16 + 3 = 163.

Od 0 do 15 w czterech systemach pokazywanych przez narzędzie.
DziesiętnyBinarny (4 bity)ÓsemkowySzesnastkowy
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Dlaczego używa się systemu szesnastkowego: bajty, kolory i adresy

Bajt to 8 bitów i obejmuje zakres od 0 do 255 (od 00000000 do 11111111). Ręczne zapisywanie bitów jest powolne i sprzyja błędom; w systemie szesnastkowym ten sam bajt to dwa znaki, od 00 do FF. Aby zamienić system binarny na szesnastkowy, podziel bity na grupy po cztery od prawej strony i zastąp każdą grupę cyfrą z tabeli. Przykład: 11010111 dzieli się na 1101 i 0111, czyli D i 7, więc wartość to D7. W systemie dziesiętnym to 13 × 16 + 7 = 215.

Najbardziej znany przypadek to kolory w sieci. W #FF8800 są trzy bajty: FF dla czerwieni (255), 88 dla zieleni (136) i 00 dla niebieskiego (0). To intensywny pomarańcz: cała czerwień, nieco ponad połowa zieleni i zero niebieskiego. System szesnastkowy pojawia się także w adresach pamięci, kodach błędów i identyfikatorach sieciowych.

Od tekstu do systemu binarnego przez ASCII

Komputer zapisuje każdą literę jako liczbę, a tę liczbę jako bity. W tabeli ASCII litera A to 65, czyli w 8-bitowym zapisie binarnym 01000001. Słowo «Hi» to dwie litery: H to 72 (01001000), a i to 105 (01101001), więc zapisuje się je jako 01001000 01101001. Dla «Hola» są to 72, 111, 108 i 97, czyli 01001000 01101111 01101100 01100001, a w systemie szesnastkowym 48 6F 6C 61.

Narzędzie używa kodowania UTF-8: dla podstawowych liter angielskich każdy znak zajmuje jeden bajt, czyli 8 bitów, ale litera z ogonkiem, taka jak ą, ł czy ż, albo emoji zajmują kilka bajtów, więc dają więcej niż 8 bitów. Na przykład ł to dwa bajty: 11000101 10000010 (C5 82 w systemie szesnastkowym).

Jak zrobić to wszystko za pomocą narzędzia

Konwerter «Binarny, dziesiętny i hex» pozwala sprawdzić Twoje ręczne obliczenia albo rozwiązać długie liczby bez błędów.

  1. Wpisz liczbę w polu jej systemu: «Dziesiętny (system 10)», «Binarny (system 2)», ósemkowy albo «Szesnastkowy (system 16)». Pozostałe trzy uzupełnią się same.
  2. Jeśli cyfra nie pasuje do systemu (na przykład 2 w systemie binarnym), narzędzie Cię o tym poinformuje.
  3. Dla tekstu wpisz go w polu «Tekst» i zobacz «Binarny (8 bitów na znak)» oraz zapis szesnastkowy po bajtach. Możesz też wkleić bity w grupach po 8, aby wrócić do tekstu.
  4. Dla nietypowych systemów użyj opcji «Dowolny system (od 2 do 36)»: wybierasz system źródłowy, docelowy i liczbę.

Ograniczenia: narzędzie przelicza tylko liczby całkowite nieujemne (bez części ułamkowej i znaku) i nie dopisuje za Ciebie zer wiodących, więc jeśli chcesz stałych 8 bitów, musisz uzupełnić je ręcznie (13 to 00001101). Nic z tego, co wpisujesz, nie opuszcza Twojej przeglądarki.

Najczęstsze błędy

Rozwiązane ćwiczenia do samodzielnej nauki

Spróbuj rozwiązać każde zadanie, zanim spojrzysz na odpowiedź, a potem sprawdź wynik za pomocą narzędzia.

Najczęstsze pytania

Jak zamienić 1101 z systemu binarnego na dziesiętny?

Dodajesz wartości miejsc, na których stoi 1: 8 + 4 + 1 = 13. Druga cyfra od prawej to 0, więc dwójki się nie dodaje.

Ile to jest 255 w systemie binarnym i szesnastkowym?

255 to 11111111 w systemie binarnym i FF w szesnastkowym. To największa wartość mieszcząca się w bajcie złożonym z 8 bitów.

Dlaczego system szesnastkowy używa liter?

Bo potrzebuje szesnastu różnych symboli, a system dziesiętny dostarcza tylko dziesięciu (0–9). Dlatego A to 10, B to 11, C to 12, D to 13, E to 14, a F to 15.

Ile różnych liczb można zapisać na 8 bitach?

256, od 0 do 255. Ogólnie na n bitach można przedstawić 2 do potęgi n wartości.

Czy narzędzie przelicza liczby ujemne lub z częścią ułamkową?

Nie, tylko liczby całkowite nieujemne. Dla tekstu używa UTF-8, więc litery z ogonkami i emoji dają więcej niż 8 bitów.