Kalkulator binarny
Konwertuj liczby między BIN/DEC/HEX oraz wykonuj proste operacje bitowe w zadanej szerokości słowa.
Spis treści
Jak działa kalkulator
Kalkulator przelicza liczbę A między zapisem dwójkowym (BIN), dziesiętnym (DEC) i szesnastkowym (HEX) oraz wykonuje na niej operacje bitowe w zadanej szerokości słowa: 8, 16, 32 lub 64 bity. W polu „Liczba A” akceptowane są prefiksy 0b/0x/0o, znak minus oraz separatory (spacja, _, '). Opcjonalnie wybierasz operację: A + B, A − B, A AND B, A OR B, A XOR B albo przesunięcie A << n / A >> n, pola „Liczba B” i „n” pojawiają się tylko wtedy, gdy są potrzebne. Wyniki: kafelek „Wynik” w wybranym formacie (domyślnie DEC), pełne reprezentacje A, B i wyniku w DEC/BIN/HEX, zakres wartości dla N bitów, widok bajtów (HEX i BIN, big- lub little-endian) oraz metryki bitowe: liczba jedynek, indeks najwyższego i najniższego ustawionego bitu.
Jak liczymy (metodologia i wzory)
Krok 1: wczytanie liczby
Wpis jest oczyszczany z separatorów (spacje, _, '). Prefiks 0b, 0o lub 0x ma pierwszeństwo przed wybraną podstawą; bez prefiksu obowiązuje pole „Podstawa wejścia” (BIN/DEC/HEX, domyślnie BIN). Cyfry są walidowane względem podstawy, np. 2 w trybie BIN zwraca błąd „Niepoprawne znaki dla podstawy”. Obliczenia działają na liczbach całkowitych dowolnej precyzji (BigInt), więc nie występują żadne zaokrąglenia.
Krok 2: sprowadzenie do słowa N-bitowego
Wartość jest maskowana: u = x AND (2^N − 1), czyli x modulo 2^N. W trybie „Ze znakiem (U2)” interpretacja dziesiętna to s = u − 2^N, gdy bit N−1 jest ustawiony, inaczej s = u. Zakresy: unsigned 0 … 2^N − 1, signed −2^(N−1) … 2^(N−1) − 1 (dla N=8: 0…255 oraz −128…127). Jeśli wpisana wartość nie mieści się w słowie, w wynikach pojawia się uwaga „A/B zawinięte do szerokości słowa”.
Krok 3: operacja
| Operacja | Wzór |
|---|---|
| A + B | (uA + uB) mod 2^N |
| A − B | (uA − uB) mod 2^N |
| AND / OR / XOR | bit po bicie na wartościach zamaskowanych do N bitów |
| A << n | (uA · 2^n) mod 2^N |
| A >> n (unsigned) | przesunięcie logiczne: floor(uA / 2^n) |
| A >> n (signed U2) | przesunięcie arytmetyczne: powiela bit znaku, potem maska do N bitów |
Krok przesunięcia n jest przycinany do zakresu 0…N, a szerokość słowa do 1…64 bitów (formularz udostępnia 8/16/32/64). Metryki bitowe: liczba jedynek (popcount) oraz indeks najwyższej i najniższej jedynki (numeracja od 0; dla zera „-”).
Krok 4: formatowanie wyniku
Każdy z poniższych parametrów to wartość domyślna, można zmienić w trybie zaawansowanym (panel „Ustawienia wyjścia”): format główny DEC (do wyboru BIN/HEX), prefiksy 0b/0x wyłączone, grupowanie cyfr co 4 znaki od prawej (zakres 0–16, 0 wyłącza), dopełnianie zerami do N bitów dla BIN i ⌈N/4⌉ znaków dla HEX włączone, HEX wielkimi literami włączone, kolejność bajtów big-endian. Tryb little-endian odwraca kolejność bajtów wyłącznie wtedy, gdy dopełnianie jest włączone i N jest wielokrotnością 8.
FAQ
Jak zamienić liczbę binarną na dziesiętną?
Każdą cyfrę mnoży się przez potęgę dwójki odpowiadającą jej pozycji i sumuje. Kalkulator przelicza między systemami BIN, DEC i HEX, rozpoznając też prefiksy 0b, 0o i 0x.
Jakie systemy liczbowe obsługuje kalkulator?
Dwójkowy (BIN), ósemkowy (0o), dziesiętny (DEC) i szesnastkowy (HEX). Prefiks 0b/0o/0x ma pierwszeństwo przed wybraną podstawą wejścia.
Co oznacza błąd niepoprawnej cyfry?
Cyfrę spoza zakresu podstawy, np. cyfra 2 w systemie binarnym (dozwolone tylko 0 i 1) albo litera poza A–F w systemie szesnastkowym.
Założenia i ograniczenia
- Kalkulator działa wyłącznie na liczbach całkowitych, nie obsługuje ułamków ani liczb zmiennoprzecinkowych (IEEE 754).
- Wynik każdej operacji jest po cichu zawijany modulo 2^N, kalkulator nie ustawia flag przepełnienia (carry/overflow/zero), jakie zna realny procesor; to model arytmetyki, nie emulator CPU.
- Minus przed liczbą (np.
-0b1010) oznacza wartość ujemną maskowaną do U2 (−10 przy N=8 daje 246), a nie „bit znaku w zapisie”, gotowy zapis U2 wpisz bez minusa i włącz tryb „Ze znakiem”. - Podstawa ósemkowa działa tylko przez prefiks
0o; nie ma jej ani w wyborze „Podstawa wejścia”, ani w formatach wyjścia. - Zamiana kolejności bajtów (little-endian) jest czysto prezentacyjna, nie zmienia wartości liczbowej i działa tylko przy włączonym dopełnianiu oraz N podzielnym przez 8.
- Krok przesunięcia n większy niż N jest przycinany do N bez komunikatu, a dla liczby B nie da się ustawić innej podstawy niż podstawa liczby A.
Źródła i aktualizacja
- Wikipedia: Dwójkowy system liczbowy, zasady zapisu pozycyjnego o podstawie 2 i konwersji BIN⇄DEC (dostęp: 10.07.2026)
- Wikipedia: Kod uzupełnień do dwóch (U2), reprezentacja liczb ujemnych używana w trybie „Ze znakiem” (dostęp: 10.07.2026)
- Wikipedia: Kolejność bajtów, różnica big-endian vs little-endian pokazywana w widoku bajtów (dostęp: 10.07.2026)
- MDN Web Docs: BigInt, typ całkowitoliczbowy dowolnej precyzji, na którym kalkulator wykonuje wszystkie obliczenia (dostęp: 10.07.2026)
- MDN Web Docs: operator przesunięcia w prawo, semantyka przesunięcia arytmetycznego użyta w trybie U2 (dostęp: 10.07.2026)