Kalkulator uzupełnień liczb binarnych Konwersja między systemem binarnym a dziesiętnym, obsługa liczb ze znakiem i obliczenia uzupełnień

Wynik konwersji

Kalkulator uzupełnienia do dwóch: opis narzędzia

Darmowe narzędzie online do konwersji liczb między systemem binarnym a dziesiętnym, obliczania uzupełnienia do 1 i uzupełnienia do 2 oraz odtwarzania oryginalnej wartości z kodu uzupełnieniowego. Obsługiwane są liczby całkowite ze znakiem i bez znaku. Żadna instalacja ani rejestracja nie jest wymagana.

Główne funkcje

  • Dziesiętny → Binarny: konwersja liczb całkowitych ze znakiem i bez znaku
  • Binarny → Dziesiętny: interpretacja jako liczba ze znakiem i bez znaku
  • Uzupełnienie do 1: odwrócenie wszystkich bitów (0↔1)
  • Uzupełnienie do 2: uzupełnienie do 1 plus 1; standardowa reprezentacja liczb ujemnych we wszystkich nowoczesnych procesorach
  • Odwrotna konwersja: automatyczne odtwarzanie oryginalnej liczby z kodu uzupełnieniowego
  • Długość słowa: 8, 16, 32 i 64 bity

Przypadki użycia

  • Studenci informatyki i elektroniki: weryfikacja zadań z architektury komputerów i systemów cyfrowych, przygotowanie do egzaminów
  • Programiści C/C++ i systemów wbudowanych: debugowanie operacji bitowych, analiza przepełnienia całkowitoliczbowego, praca z typami int8_t, int16_t, int32_t
  • Programiści Java: wszystkie typy całkowitoliczbowe w Javie używają kodu uzupełnieniowego; wizualizacja masek bitowych i przesunięć
  • Programiści Python: zrozumienie działania operatora ~x i masek bitowych dla liczb ujemnych
  • Projektanci układów cyfrowych: weryfikacja wartości wejściowych i wyjściowych jednostki arytmetyczno-logicznej (ALU) na poziomie bitowym

Instrukcja krok po kroku

  1. Wybierz kierunek konwersji: „Dziesiętny → Binarny" lub „Binarny → Dziesiętny"
  2. Wprowadź liczbę (dla ujemnych dziesiętnych użyj znaku minus, np. −42)
  3. Wybierz długość słowa: 8, 16, 32 lub 64 bity
  4. Wyniki pojawią się natychmiast: binarne bez znaku, uzupełnienie do 1, uzupełnienie do 2
  5. Użyj przycisku „Skopiuj do schowka", aby wkleić wynik bezpośrednio do kodu

Czym jest uzupełnienie do dwóch?

W informatyce uzupełnienie do dwóch (ang. two's complement) to powszechnie stosowana metoda reprezentacji ujemnych liczb całkowitych w komputerach. Dzięki niej operacje dodawania i odejmowania mogą być wykonywane przez ten sam układ sprzętowy, co znacznie upraszcza budowę procesorów.

Uzupełnienie do 1: wszystkie bity zostają odwrócone. Przykład: 00001010 (+10) → 11110101

Uzupełnienie do 2: uzupełnienie do 1 powiększone o 1. Przykład: 11110101 + 1 = 11110110 (reprezentacja −10 na 8 bitach)

Więcej informacji: Uzupełnienie do dwóch — Wikipedia

Przydatne wskazówki

  • Zakresy wartości: 8 bitów (−128 do +127), 16 bitów (−32 768 do +32 767), 32 bity (−2 147 483 648 do +2 147 483 647).
  • W przypadku przekroczenia zakresu wyświetlone zostanie ostrzeżenie o przepełnieniu — wybierz większą długość słowa.
  • W C operator ~x oblicza uzupełnienie do 1, a -x — uzupełnienie do 2 (zmiana znaku).
  • W Pythonie wyrażenie (~x) & 0xFF daje uzupełnienie do 2 dla 8 bitów.

Najczęściej zadawane pytania (FAQ)

  • Czy to narzędzie jest darmowe?
    Tak, całkowicie bezpłatne i bez konieczności rejestracji.
  • Jak przekonwertować ujemną liczbę dziesiętną na binarną?
    Wystarczy wpisać wartość ze znakiem minus — narzędzie automatycznie wyświetli jej reprezentację w kodzie uzupełnienia do 2.
  • Jaka jest różnica między uzupełnieniem do 1 a uzupełnieniem do 2?
    Uzupełnienie do 1 jedynie odwraca bity, co daje dwie reprezentacje zera. Uzupełnienie do 2 eliminuje ten problem przez dodanie 1, zapewniając jednoznaczną reprezentację zera i upraszczając arytmetykę sprzętową.
  • Jaka jest maksymalna obsługiwana długość słowa?
    Do 64 bitów włącznie.
  • Jak obliczyć uzupełnienie do 2 w Javie?
    Operacja -x w Javie zwraca uzupełnienie do 2 (negację arytmetyczną). Metoda Integer.toBinaryString(x) wyświetla 32-bitową reprezentację uzupełnieniową.

Metody konwersji dziesiętnego na binarny w różnych językach programowania

JavaInteger.toBinaryString(decimal_number)
JavaScriptlet binary = decimal_number.toString(2);
Microsoft .NET / C#string binary = Convert.ToString(decimal_number, 2);
Pythonbinary = bin(decimal_number)[2:]
Rubybinary = decimal_number.to_s(2)
Go import strconv
binary := strconv.FormatInt(decimal_number, 2)