Przejdź do treści

System dwójkowy, ósemkowy i szesnastkowy — jak zamieniać liczby

Redakcja AMKBIT · · 1 min czytania

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ętnieDwójkowoÓsemkowoSzesnastkowo
0000
510155
10101012A
15111117F
16100002010
25511111111377FF

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

Przeczytaj też