Kalkulator Binarny: Konwersja Liczb Dwójkowych

>_ 0101 1010

Kalkulator binarny

Przelicz liczbę między BIN, OCT, DEC i HEX, zobacz słowo 8-, 16- lub 32-bitowe oraz interpretację ze znakiem w uzupełnieniu do dwóch. Osobna ścieżka wyjaśnia bity, bajty, kB i KiB.

Liczba i sposób odczytu

Wartość w wybranym systemie

EAHEX · wartość bez znaku 234
11101010
  • BIN1110 1010
  • OCT352
  • DEC bez znaku234
  • DEC ze znakiem U2−22
  • HEXEA
  • Jedynek / zer w słowie5 / 3
  • Zakres 8-bitowy0…255 bez znaku; −128…127 ze znakiem

Bity i bajty: dziesiętne kontra binarne

1 MiB = 1,048576 MB = 1 048 576 B

System pozycyjny w czterech podstawach

W systemie pozycyjnym znaczenie cyfry zależy od miejsca. Dziesiętne 234 to 2×10² + 3×10¹ + 4×10⁰. Binarny zapis 11101010 używa potęg dwójki: 128+64+32+8+2, co również daje 234. Kalkulator odczytuje ciąg w wybranej podstawie, a następnie przedstawia tę samą wartość w pozostałych systemach.

System ósemkowy ma cyfry 0–7, szesnastkowy 0–9 oraz A–F. Litera A oznacza dziesięć, B jedenaście, a F piętnaście. Wielkość liter nie zmienia wartości. Wpis „2” nie jest prawidłowym bitem, a „G” nie jest cyfrą szesnastkową; formularz sprawdza alfabet przed przeliczeniem.

Wartość = suma każdej cyfry × podstawapozycja od prawej.

Szerokość słowa nie zmienia matematycznej wartości dodatniej, dopóki mieści się ona w zakresie. Decyduje jednak o liczbie zer wiodących, położeniu bitu znaku i momencie przepełnienia. Dlatego 11101010 jako osiem bitów może oznaczać 234 bez znaku albo −22 ze znakiem U2.

Dlaczego HEX wygodnie opisuje bity

Jedna cyfra szesnastkowa odpowiada dokładnie czterem bitom. Binarną grupę 1110 zamieniamy na E, a 1010 na A, więc 1110 1010 staje się EA. Nie potrzeba pośredniego dzielenia przez szesnaście, jeśli poprawnie grupujemy bity od prawej strony.

Ósemkowy działa podobnie, ale grupuje po trzy bity. Dla 11101010 dopisujemy z lewej jedno zero, otrzymując 011 101 010, czyli cyfry 3, 5 i 2. Wynik to 352. Zera wiodące pomagają grupować, lecz nie zmieniają wartości bez znaku.

BIN

Najbliżej logiki układu. Każda pozycja ma wagę będącą potęgą dwójki.

OCT

Jedna cyfra mieści trzy bity. Spotykany w uprawnieniach systemów uniksowych.

HEX

Jedna cyfra mieści cztery bity. Ułatwia czytanie bajtów, adresów i kolorów.

Uzupełnienie do dwóch i liczby ujemne

Najczęstsza interpretacja liczb całkowitych ze znakiem używa uzupełnienia do dwóch. W słowie 8-bitowym zakres wynosi od −128 do 127. Jeśli najwyższy bit jest zerem, wartość jest nieujemna. Jeśli jest jedynką, od liczby bez znaku odejmujemy 2⁸, czyli 256.

Dla 11101010 wartość bez znaku wynosi 234. Ponieważ bit znaku ma wartość 1, interpretacja ze znakiem to 234−256=−22. Odwrotna procedura dla −22 polega na dodaniu 256, co daje kod 234 i te same bity. Można też odwrócić bity dodatniego 22 i dodać jeden.

Przy 16 bitach odejmujemy 65 536, a przy 32 bitach 4 294 967 296. Ten sam krótki ciąg może dostać zera wiodące, jeśli szerokość zwiększymy. Wtedy najwyższy bit będzie zerem i interpretacja może stać się dodatnia. Szerokość jest częścią danych, nie ozdobą zapisu.

Kalkulator ogranicza się do całkowitych słów 8, 16 i 32-bitowych. Nie interpretuje liczb zmiennoprzecinkowych IEEE 754 ani ułamków binarnych.

Zakres i przepełnienie

SzerokośćBez znakuZe znakiem U2Cyfr HEX
8 bitów0…255−128…1272
16 bitów0…65 535−32 768…32 7674
32 bity0…4 294 967 295−2 147 483 648…2 147 483 6478

Jeśli dodatnia liczba nie mieści się w wybranym słowie, kalkulator zgłasza błąd zamiast cicho usuwać starsze bity. W sprzęcie lub języku programowania zachowanie może polegać na zawinięciu modulo 2ⁿ, wyjątku, nasyceniu albo automatycznym rozszerzeniu typu. Trzeba znać regułę konkretnego środowiska.

Przepełnienie ze znakiem bywa mylące. Dodanie jednego do 127 w ośmiu bitach tworzy kod 10000000, który w U2 oznacza −128. Matematyka zwykłych liczb nie zmieniła się; ograniczony rejestr stracił informację o dziewiątym bicie. Kalkulator nie wykonuje arytmetyki, ale pokazany zakres pozwala wykryć ryzyko.

Bit, bajt i symbole

Bit jest pojedynczą wartością 0 albo 1. Bajt ma osiem bitów. Małe „b” zwykle oznacza bit, a wielkie „B” bajt. Łącze 100 Mb/s przesyła teoretycznie 100 megabitów na sekundę, nie 100 megabajtów. Pomijając narzut, odpowiada to 12,5 MB/s, ponieważ dzielimy przez osiem.

Kalkulator rozmiaru danych przelicza wszystkie jednostki przez bajt. Jeden bit to 1/8 bajta. Dla bardzo małych lub ułamkowych liczb wynik w bajtach może nie oznaczać fizycznego pliku, bo system plików przydziela przestrzeń blokami, a protokół dodaje nagłówki.

Warto też odróżnić wielkość pliku od zajętego miejsca na dysku, przepustowość od prędkości pobierania oraz dane użyteczne od transmisji. Przeliczenie jednostek jest dokładne, ale nie przewiduje kompresji, kodowania, sum kontrolnych, retransmisji ani obciążenia sieci.

kB to 1000 B, a KiB to 1024 B

Przedrostki SI są dziesiętne: kilo oznacza 10³, mega 10⁶, giga 10⁹. Dlatego 1 kB to 1000 B, 1 MB to 1 000 000 B, a 1 GB to 1 000 000 000 B. NIST wyraźnie odradza używanie kilo jako nazwy 1024.

Dla potęg dwójki IEC wprowadziła przedrostki binarne. 1 KiB to 2¹⁰ B = 1024 B, 1 MiB to 2²⁰ B = 1 048 576 B, a 1 GiB to 2³⁰ B = 1 073 741 824 B. Symbole zawierają literę „i”, która usuwa niejednoznaczność.

Jeden MiB to 1,048576 MB. Jeden GB to około 0,931323 GiB. Różnica rośnie wraz z rozmiarem, dlatego dysk opisany dziesiętnie może wyglądać w systemie używającym jednostek binarnych na mniejszy, choć żadna pojemność nie zniknęła. Dodatkową część mogą zajmować partycje i metadane.

Nie używaj „MB” i „MiB” zamiennie w specyfikacji. Jeśli aplikacja pokazuje symbol MB, ale liczy po 1024, warto sprawdzić dokumentację zamiast zgadywać.

Operacje bitowe: maski i przesunięcia

Maska wybiera określone bity. Operacja AND z jedynką na danej pozycji zachowuje bit, a z zerem go czyści. OR może ustawić bity, XOR przełącza je tam, gdzie maska ma jedynkę. Kalkulator nie wykonuje tych operacji, ale pokazuje pogrupowane słowo, które ułatwia zaplanowanie maski.

Przesunięcie w lewo o jedną pozycję odpowiada mnożeniu nieujemnej liczby przez dwa, o ile nie wystąpi przepełnienie. Przesunięcie w prawo odpowiada dzieleniu całkowitemu przez dwa dla wartości bez znaku. Dla liczb ujemnych wynik zależy od przesunięcia arytmetycznego lub logicznego.

Przy adresach, flagach i rejestrach opis bitów musi wskazywać numerację. Część dokumentacji liczy najmłodszy bit jako bit 0, a kolejny jako 1. Kolejność bajtów w pamięci, czyli endianowość, jest osobnym problemem: ten sam zestaw bajtów może być zapisany od najmniej lub najbardziej znaczącego.

Jak przeliczyć liczbę ręcznie

Aby przejść z dziesiętnego na binarny, dziel liczbę całkowitą przez dwa i zapisuj reszty. Dla 13 reszty kolejno wynoszą 1, 0, 1, 1. Czytane od końca dają 1101. Kontrola: 8+4+1=13. Do HEX można następnie dopisać z lewej zera do pełnej czwórki i odczytać D.

Aby wrócić do dziesiętnego, wypisz wagi 1, 2, 4, 8, 16 i kolejne potęgi dwójki od prawej. Dodaj tylko te, nad którymi stoi jedynka. Dla długich słów grupowanie co cztery bity zmniejsza liczbę pomyłek i pozwala równolegle sprawdzić zapis szesnastkowy.

Na koniec określ szerokość oraz znak. Sama wartość matematyczna 255 może być poprawna bez znaku w ośmiu bitach, ale kod 11111111 jako U2 oznacza −1. Jeśli dokument nie podaje typu danych, nie da się jednoznacznie wybrać interpretacji.

Zastosowania i ograniczenia

Konwersja przydaje się podczas nauki informatyki, analizy uprawnień plików, czytania rejestrów mikrokontrolera, adresów pamięci i kodów kolorów. Kolor #1B81F7 składa się z trzech bajtów HEX: 1B, 81 i F7. To zapis kanałów, nie zwykła jedna liczba ze znakiem.

Adres IP także nie powinien być traktowany jak dowolna liczba bez kontekstu. IPv4 składa się z 32 bitów, zwykle przedstawianych jako cztery oktety dziesiętne. Maska sieci określa, które bity opisują sieć. Ten kalkulator pokaże 32-bitowe słowo, ale nie oblicza podsieci i nie sprawdza poprawności adresu.

Znaki tekstu wymagają kodowania, na przykład UTF-8. Liczba bajtów nie jest zawsze równa liczbie liter, szczególnie dla polskich znaków. Konwersja liczby 261 na binarny nie jest jeszcze kodowaniem litery „ą”; potrzebna jest wiedza o punkcie kodowym i sposobie zapisu bajtów.

Przy debugowaniu warto zapisać obok siebie wartość źródłową, szerokość, znak i oczekiwany format. Sam napis „FF” jest niepełny: może oznaczać 255 bez znaku, −1 w ośmiobitowym U2, składnik koloru albo fragment dłuższego słowa. Dopiero metadane pozwalają wybrać właściwą interpretację i sprawdzić, czy zera wiodące powinny zostać zachowane.

Wynik z konsoli przepisuj razem z prefiksem używanym przez dane środowisko. W wielu językach 0b poprzedza zapis binarny, 0x szesnastkowy, a sposób oznaczania ósemkowego bywa różny. Prefiks nie jest cyfrą i nie należy wpisywać go do pola liczby. Dokumentacja języka rozstrzyga również, czy typ jest podpisany, ile ma bitów i co dzieje się przy przepełnieniu.

Najczęstsze pytania

Czy 11101010 oznacza 234 czy −22?

Obie interpretacje są możliwe dla ośmiu bitów. Bez znaku to 234. W uzupełnieniu do dwóch najwyższy bit jest znakiem, więc kod oznacza −22.

Dlaczego w systemie binarnym nie mogę wpisać cyfry 2?

Podstawa dwa ma tylko cyfry 0 i 1. Cyfra musi być mniejsza od podstawy. „2” jest dozwolone od systemu trójkowego wzwyż.

Czy 1 kB ma 1000 czy 1024 bajty?

1 kB ma 1000 B według SI. Wartość 1024 B ma nazwę 1 KiB. Jeśli program używa innej konwencji, jego dokumentacja powinna to wyjaśnić.

Ile cyfr HEX mieści jeden bajt?

Dwie. Jedna cyfra HEX reprezentuje cztery bity, a bajt ma osiem bitów. Zakres bajtu bez znaku to 00–FF.

Czy zera z lewej zmieniają liczbę?

Nie dla wartości bez znaku, ale określają szerokość słowa. W interpretacji U2 dodanie zer może przesunąć bit znaku i zmienić odczyt typu.

Czy kalkulator obsługuje ułamki binarne?

Nie. Obsługuje całkowite słowa do 32 bitów. Ułamki i IEEE 754 wymagają informacji o mantysie, wykładniku, znaku oraz formacie.

Źródła

Przewijanie do góry