Kalkulator konwersji systemów liczbowych
Konwertuj liczbę całkowitą na system binarny, ósemkowy, dziesiętny i szesnastkowy.
Jak korzystać z tego kalkulatora konwersji systemów liczbowych
- Wprowadź liczbę całkowitą
Wpisz nieujemną liczbę całkowitą w polu Liczba całkowita (np. 255 lub 4096).
- Odczytaj wartość binarną
Wynik w systemie binarnym pokazuje reprezentację o podstawie 2.
- Sprawdź system ósemkowy i szesnastkowy
Przejrzyj wyniki w systemie ósemkowym i szesnastkowym dla uzyskania kompaktowej reprezentacji.
- Zweryfikuj system dziesiętny
Wynik dziesiętny potwierdza pierwotną wartość w celu weryfikacji krzyżowej.
Jak działa ten kalkulator konwersji systemów liczbowych
Ten kalkulator konwersji systemów liczbowych przyjmuje liczbę całkowitą w systemie dziesiętnym (podstawa 10) i przedstawia ją w systemie binarnym (podstawa 2), ósemkowym (podstawa 8) oraz szesnastkowym (podstawa 16) — czterech systemach liczbowych najczęściej używanych w informatyce. Każdy pozycyjny system liczbowy działa w ten sam sposób: każda pozycja cyfry reprezentuje kolejną potęgę podstawy, a wartość liczby jest sumą każdej cyfry pomnożonej przez jej wagę pozycyjną. Konwersja między systemami jest podstawową operacją w programowaniu niskopoziomowym, projektowaniu logiki cyfrowej, inżynierii sieciowej (adresy MAC i IPv6), kodach kolorów w CSS, maskach uprawnień plików w systemie Unix oraz inspekcji adresów pamięci podczas debugowania.
Wielokrotne dzielenie: podziel N przez docelową podstawę R, zapisz resztę, powtarzaj z ilorazem, aż osiągnie 0, a następnie odczytaj reszty w odwrotnej kolejności Konwersja liczby dziesiętnej 255 na system binarny, ósemkowy i szesnastkowy. Dla binarnego (R = 2): 255 ÷ 2 = 127 reszta 1, 127 ÷ 2 = 63 R 1, 63 ÷ 2 = 31 R 1, 31 ÷ 2 = 15 R 1, 15 ÷ 2 = 7 R 1, 7 ÷ 2 = 3 R 1, 3 ÷ 2 = 1 R 1, 1 ÷ 2 = 0 R 1. Czytając reszty od dołu: 11111111. Dla ósemkowego (R = 8): 255 ÷ 8 = 31 R 7, 31 ÷ 8 = 3 R 7, 3 ÷ 8 = 0 R 3 → 377. Dla szesnastkowego (R = 16): 255 ÷ 16 = 15 R 15 (F), 15 ÷ 16 = 0 R 15 (F) → FF.
Dziesiętne 4096 → binarne 1000000000000, ósemkowe 10000, szesnastkowe 1000. Pomocne w zrozumieniu, że 4 KiB = 4096 bajtów.
Dziesiętne 15 → binarne 1111, ósemkowe 17, szesnastkowe F. Każda cyfra szesnastkowa odpowiada dokładnie czterem bitom; F = 1111.
- ✓ Dane wejściowe to nieujemna liczba całkowita (zero lub dodatnia liczba całkowita). Wartości ułamkowe i liczby ujemne wymagają rozszerzonych algorytmów (np. uzupełnienia do dwóch dla binarnego zapisu ze znakiem), które wykraczają poza zakres tego narzędzia.
- ✓ Cyfry szesnastkowe powyżej 9 są reprezentowane za pomocą wielkich liter A–F, zgodnie z konwencją stosowaną w większości języków programowania, dokumentach RFC i dokumentacji sprzętowej.
- ✓ Zera wiodące są pomijane w wyniku. W przypadku reprezentacji o stałej szerokości (np. 8-bitowej lub 32-bitowej binarnej), należy ręcznie uzupełnić wynik do żądanej szerokości.
- ✓ Kalkulator akceptuje wyłącznie nieujemne liczby całkowite. Wartości powyżej 2^53 − 1 (Number.MAX_SAFE_INTEGER w JavaScript) są odrzucane, aby wyświetlane cyfry pozostały dokładne.
- Każda cyfra szesnastkowa odpowiada dokładnie czterem cyfrom binarnym (bitom), a każda cyfra ósemkowa odpowiada dokładnie trzem bitom. Ta zależność sprawia, że konwersja w pamięci między systemem szesnastkowym, ósemkowym i binarnym jest szybka po zapamiętaniu 16 wzorców półbajtów.
- Typowe wartości warte zapamiętania: 0xFF = 255, 0x100 = 256, 0xFFFF = 65535, 0xFFFFFFFF = 4 294 967 295 (maksymalna 32-bitowa liczba całkowita bez znaku).
- Uprawnienia plików Unix używają systemu ósemkowego: 755 oznacza rwxr-xr-x (odczyt/zapis/wykonanie dla właściciela, odczyt/wykonanie dla grupy i pozostałych). Każda cyfra ósemkowa koduje trzy bity uprawnień.
- Kody kolorów CSS hex to trzy połączone szesnastkowe wartości bajtowe reprezentujące kanały czerwony, zielony i niebieski — np. #FF8800 to 255 czerwonego, 136 zielonego i 0 niebieskiego.
- Teoria pozycyjnych systemów liczbowych — Knuth, D. E., Sztuka programowania, Tom 2: Algorytmy seminumeryczne, Sekcja 4.1
- IEEE 754-2019 — Standard dla arytmetyki zmiennoprzecinkowej (kontekst reprezentacji liczb całkowitych)
- RFC 4291 — Architektura adresowania IP w wersji 6 (notacja szesnastkowa dla IPv6)
Zrozumienie systemów liczbowych w informatyce
Każdy pozycyjny system liczbowy wykorzystuje podstawę i przypisuje każdej cyfrze wagę zależną od jej pozycji. W systemie dziesiętnym (podstawa 10) skrajna prawa cyfra to jedności, kolejna to dziesiątki, potem setki. System binarny (podstawa 2) używa tylko 0 i 1, co odpowiada stanom włączony/wyłączony tranzystorów. System ósemkowy (podstawa 8) grupuje trzy bity na cyfrę, a szesnastkowy (podstawa 16) grupuje cztery bity na cyfrę, używając liter A–F dla wartości 10–15. Konwersja między systemami odbywa się poprzez wielokrotne dzielenie: podziel liczbę przez docelową podstawę, zapisz resztę, powtarzaj z ilorazem aż do zera, a następnie odczytaj reszty w odwrotnej kolejności. Ten algorytm stanowi podstawę wszystkich konwersji systemów liczbowych w programowaniu.
Praktyczne zastosowania konwersji systemów liczbowych dla programistów
Programiści korzystają z konwersji systemów liczbowych podczas analizy zrzutów pamięci, debugowania operacji bitowych, interpretacji uprawnień plików oraz pracy z kodami kolorów. Uprawnienia plików w systemie Unix (np. 755) są ósemkowe: każda cyfra koduje odczyt/zapis/wykonanie dla właściciela, grupy i pozostałych. Kolory CSS w formacie hex, takie jak #FF8800, to trzy połączone bajty w systemie szesnastkowym. Adresy IPv6 są zapisywane w systemie hex. Maski bitowe i flagi są często wyrażane w systemie szesnastkowym dla lepszej czytelności (0xFF dla maski bajtu, 0xFFFF dla 16 bitów). Podczas debugowania kodu niskopoziomowego lub protokołów sieciowych, konwersja między systemem dziesiętnym, szesnastkowym i binarnym pozwala szybko dostrzec wzorce bitowe.
Kalkulator konwersji systemów liczbowych – FAQ
Dlaczego w informatyce używa się systemów binarnego, ósemkowego i szesnastkowego?
System binarny odpowiada bezpośrednio stanom włączenia/wyłączenia tranzystorów, co czyni go natywnym językiem sprzętu. Systemy ósemkowy i szesnastkowy to skrócony zapis binarny — jedna cyfra szesnastkowa reprezentuje dokładnie cztery bity, a jedna ósemkowa trzy bity — dlatego programiści używają ich do zwięzłego zapisu adresów, masek bitowych i kodów kolorów.
Jak wykonać konwersję w drugą stronę (np. z szesnastkowego na dziesiętny)?
Pomnóż każdą cyfrę przez podstawę systemu podniesioną do potęgi odpowiadającej jej pozycji i zsumuj wyniki. Na przykład szesnastkowe 1A3 = 1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 419 w systemie dziesiętnym.
Co się dzieje w przypadku bardzo dużych liczb?
Kalkulator akceptuje tylko wartości do limitu bezpiecznych liczb całkowitych w JavaScript: 2^53 − 1 (9 007 199 254 740 991). Większe liczby są odrzucane, ponieważ w przeglądarce mogą utracić najmniej znaczące cyfry.
Czy mogę konwertować liczby ujemne lub ułamki?
To narzędzie obsługuje nieujemne liczby całkowite. Liczby całkowite ujemne w informatyce są zazwyczaj reprezentowane przy użyciu kodu uzupełnień do dwóch o stałej szerokości bitowej, a wartości ułamkowe wykorzystują kodowanie zmiennoprzecinkowe IEEE 754 — oba wymagają dodatkowych parametrów, których ten kalkulator nie gromadzi.
Dlaczego prefiks 0x pojawia się w kodzie, ale nie w wyniku?
Prefiks 0x (oraz 0b dla systemu binarnego, 0o dla ósemkowego) to specyficzna dla języka składnia literału informująca kompilator lub interpreter o oczekiwanej podstawie. Kalkulator wyświetla surowy ciąg cyfr bez prefiksu, dzięki czemu można go użyć w dowolnym kontekście.