System dwójkowy, ósemkowy i szesnastkowy — jak zamieniać liczby
Jak zamienić liczbę dziesiętną na binarną i z powrotem, dlaczego programiści lubią zapis szesnastkowy i co oznacza 0xFF albo #3651E0. Krok po kroku z przykładami.
Na co dzień liczymy w systemie dziesiętnym, bo mamy dziesięć palców. Komputery operują na bitach — zerach i jedynkach — więc naturalny jest dla nich system dwójkowy. System szesnastkowy to wygodny skrót, który ułatwia ludziom czytanie danych binarnych.
Systemy pozycyjne
W każdym systemie wartość cyfry zależy od pozycji. W dziesiętnym 352 = 3·10² + 5·10¹ + 2·10⁰. W dwójkowym podstawą jest 2, w ósemkowym 8, a w szesnastkowym 16.
| Dziesiętnie | Dwójkowo | Ósemkowo | Szesnastkowo |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 5 | 101 | 5 | 5 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 255 | 11111111 | 377 | FF |
Z dwójkowego na dziesiętny
Sumujemy potęgi dwójki tam, gdzie stoi jedynka. 1011 0110:
128 + 0 + 32 + 16 + 0 + 4 + 2 + 0 = 182
Z dziesiętnego na dwójkowy
Dzielimy przez 2 i zapisujemy reszty, a wynik czytamy od dołu. Dla 45:
45 : 2 = 22 r 1 22 : 2 = 11 r 0 11 : 2 = 5 r 1 5 : 2 = 2 r 1 2 : 2 = 1 r 0 1 : 2 = 0 r 1 → 101101
Szesnastkowy — cztery bity na cyfrę
Cyfry szesnastkowe to 0–9 i litery A–F (A = 10, …, F = 15). Każda odpowiada dokładnie czterem bitom, więc zamiana jest prosta: dzielimy liczbę binarną na czwórki od prawej.
1011 0110 → B 6 → 0xB6 = 182
Przedrostek 0x w programowaniu oznacza zapis szesnastkowy, 0b — dwójkowy, a 0o — ósemkowy.
Gdzie to spotkasz
- Kolory w CSS: #3651E0 to trzy bajty: czerwony 0x36 = 54, zielony 0x51 = 81, niebieski 0xE0 = 224. Zamienisz je w konwerterze kolorów.
- Adresy MAC i IPv6: zapisywane szesnastkowo, np. 00:1A:2B:3C:4D:5E.
- Maski podsieci: 255.255.255.192 to dwójkowo 24 jedynki i 2 kolejne — patrz Maska podsieci i CIDR.
- Uprawnienia plików w Linux: chmod 755 to zapis ósemkowy: 7 = rwx, 5 = r-x.
- Kody znaków: litera „A” to 65 = 0x41 — sprawdzisz w konwerterze ASCII.
- Rejestry sterowników i Modbus: słowa 16-bitowe zapisuje się jako cztery cyfry szesnastkowe.
Liczby ujemne
Komputery zapisują liczby ujemne w kodzie uzupełnień do dwóch: odwracamy bity i dodajemy 1. W 8 bitach −1 to 1111 1111 (0xFF), a −128 to 1000 0000. Dlatego ta sama wartość 0xFF może oznaczać 255 lub −1 — zależnie od tego, czy liczba jest traktowana jako ze znakiem.
Zamianę między dowolnymi systemami (od 2 do 36) wykonasz w konwerterze systemów liczbowych.
Narzędzia do tego poradnika
system dwójkowybinarnyszesnastkowyhexkonwersja