Kalkulator uzupełnienia do dwóch
Oto Omni kalkulator uzupełnienia do dwóch (lub dopełnienia do 2), fantastyczne narzędzie, które pomoże Ci znaleźć liczbę przeciwną w systemie binarnym oraz zamienić ją na wartość w systemie dziesiętnym. Dowiesz się czym jest reprezentacja uzupełnienia do dwóch oraz poznasz zasadę tworzenia liczb ujemnych w systemie binarnym z uwzględnieniem znaku. W tekście znajdziesz również informacje o tym, jak działa przelicznik uzupełnienia do dwóch oraz jak samemu zamienić dowolną liczbę binarną na dziesiętną przy użyciu kartki i długopisu.
🔎 Jeśli potrzebujesz tylko zamienić liczbę dziesiętną na binarną, albo na odwrót, sprawdź Omni konwerter liczb binarnych 🇺🇸!
Jak operować na liczbach ujemnych w systemie binarnym? — Reprezentacja uzupełnienia kodu do 2
Liczby w systemie binarnym są zbudowane tylko z dwóch cyfr, lub . Zaczynając od prawej strony, kolejne cyfry odpowiadają kolejnym potęgom 2.
Na przykład, w systemie binarnym to , ponieważ (korzystając z notacji naukowej). System szesnastkowy jest rozszerzoną wersją systemu binarnego — jeden bit w systemie szesnastkowym odpowiada czterem z systemu dwójkowego, a każda cyfra odpowiada kolejnej potędze 16 zamiast 2. Reprezentacja szesnastkowa jest często używana w wielu programach i systemach komputerowych. Jeśli chcesz dowiedzieć się więcej, odwiedź nasz przelicznik liczb dziesiętnych na szesnastkowe 🇺🇸.
Zaczynając przygodę z liczbami binarnymi, prędzej czy później staniesz przed następującymi problemami: Co z liczbami ujemnymi w systemie binarnym? Albo jak odejmować liczby binarne? Ponieważ możemy używać tylko , aby pokazać, że coś jest obecne lub , aby oznaczyć brak tego czegoś, istnieją dwa główne podejścia:
-
System binarny z uwzględnieniem znaku, albo znak-moduł — Pierwszy bit określa znak. Konwencja jest taka, że liczba zaczynająca się jest ujemna, natomiast zaczynająca się jest dodatnia. W 8-bitowej reprezentacji możemy zapisać dowolną liczbę od -128 do 127. W tej reprezentacji liczba ujemna jest dopełnieniem do dwóch liczby dodatniej.
-
System binarny bez znaku — To reprezentacja, która obsługuje wyłącznie wartości dodatnie. Jej przewaga nad poprzednią notacją polega na tym, że w ramach tego samego systemu 8-bitowego możemy otrzymać dowolną liczbę od 0 do 255.
Notacja bez uwzględnienia znaku jest wystarczająca, jeśli potrzebujemy dodać lub pomnożyć liczby dodatnie. Jednak zwykle bardziej praktycznym rozwiązaniem jest również praca z liczbami ujemnymi. Przydatną cechą reprezentacji uzupełnienia do dwóch jest to, że odejmowanie liczby dodatniej jest równoważne dodawaniu liczby ujemnej, dokładnie tak jak w dobrze nam znanym systemie dziesiętnym.
Jak korzystać z kalkulatora uzupełnienia do dwóch?
Wykonaj następujące kroki jeśli chcesz zamienić liczbę dziesiętną na binarną w reprezentacji z uwzględnieniem znaku:
-
Wybierz liczbę bitów w swoim zapisie. Im wyższa wartość, tym szerszy zakres liczb, które możesz wprowadzić.
-
Napisz dowolną liczbę całkowitą w przedziale, który pojawia się w sekcji
Dziesiętny na binarny
. -
… i to wszystko — kalkulator uzupełnienia do dwóch zajmie się resztą! Wyświetli liczbę w postaci binarnej oraz jej dopełnienie dwójkowe (liczbę przeciwną).
A jak wyznaczyć wynik samodzielnie? Oto sekret działania Omni kalkulatora uzupełnienia do 2:
-
Wybierz liczbę bitów w reprezentacji binarnej. Załóżmy, że interesują nas wartości w systemie 8-bitowym.
-
Zapisz swoją liczbę, powiedzmy 16. 16 w systemie binarnym to .
-
Dodaj kilka zer z lewej strony, tak aby liczba miała łącznie osiem cyfr, . To jest 16 w notacji binarnej z uwzględnieniem znaku.
A co z liczbą przeciwną, ?
-
Zamień wszystkie cyfry na ich przeciwieństwa ( i ). W naszym przypadku to będzie .
-
Dodaj 1 do tej liczby, .
-
w systemie binarnym ze znakiem to w notacji dziesiętnej. Jednocześnie jest to dopełnienie dwójkowe liczby .
Jak widzisz, jeśli potrafisz zamieniać cyfry i dodać jedynkę do dowolnej liczby binarnej, wyznaczenie liczby ujemnej w systemie dwójkowym to pestka!
🔎 W przypadku dodawania liczb binarnych pomocny może okazać się nasz kalkulator dodawania liczb binarnych 🇺🇸.
Przekształcanie liczby binarnej ze znakiem na dziesiętną
Omni kalkulator uzupełnienia do dwóch może również działać w drugą stronę — zamieniając dowolną liczbę binarną ze znakiem na wartość dziesiętną. Spróbujmy przekształcić , liczbę binarną w systemie uwzględniającym znak, na wartość dziesiętną. Możemy to zrobić na dwa sposoby:
Sposób 1
Przekształćmy liczbę binarną na dziesiętną, tak jak zwykle, ale pomnóżmy pierwszą cyfrę przez zamiast . Zaczynając od prawej strony:
Sposób 2
Warto zauważyć, że skoro pierwsza cyfra to , to nasza liczba jest ujemna. W takiej sytuacji najpierw znajdź dwójkowe dopełnienie tej liczby. Następnie zamień ją na wartość dziesiętną, a na koniec wróć do pierwotnej liczby:
- Zamień wszystkie cyfry, .
- Dodaj jeden do tej wartości, .
- Przekształć tę liczbę do systemu dziesiętnego (zaczynając od prawej strony),
- Zatem .
- Skoro jest wartością bezwzględną naszej początkowej (ujemnej) liczby binarnej, to dopisz przed nią znak minus.
- to w systemie binarnym ze znakiem.
Tabela zamiany liczb z systemu binarnego na dziesiętny
Jeśli chcesz znaleźć dowolną liczbę całkowitą w ośmiobitowej reprezentacji binarnej ze znakiem, możesz skorzystać z tej tabeli. W każdym wierszu zawarte są kolejne wartości oraz ich liczby przeciwne.
Jeśli chcesz sprawdzić wartości o innej liczby bitów, po prostu skorzystaj z Omni kalkulatora uzupełnienia do dwóch, aby zaoszczędzić sobie czasu i wysiłku!
Dziesiętna | Binarna | Dziesiętna | Binarna |
---|---|---|---|
0 | 0000 0000 | ||
1 | 0000 0001 | -1 | 1111 1111 |
2 | 0000 0010 | -2 | 1111 1110 |
3 | 0000 0011 | -3 | 1111 1101 |
4 | 0000 0100 | -4 | 1111 1100 |
5 | 0000 0101 | -5 | 1111 1011 |
6 | 0000 0110 | -6 | 1111 1010 |
7 | 0000 0111 | -7 | 1111 1001 |
8 | 0000 1000 | -8 | 1111 1000 |
9 | 0000 1001 | -9 | 1111 0111 |
10 | 0000 1010 | -10 | 1111 0110 |
11 | 0000 1011 | -11 | 1111 0101 |
12 | 0000 1100 | -12 | 1111 0100 |
13 | 0000 1101 | -13 | 1111 0011 |
14 | 0000 1110 | -14 | 1111 0010 |
15 | 0000 1111 | -15 | 1111 0001 |
16 | 0001 0000 | -16 | 1111 0000 |
17 | 0001 0001 | -17 | 1110 1111 |
18 | 0001 0010 | -18 | 1110 1110 |
19 | 0001 0011 | -19 | 1110 1101 |
20 | 0001 0100 | -20 | 1110 1100 |
21 | 0001 0101 | -21 | 1110 1011 |
22 | 0001 0110 | -22 | 1110 1010 |
23 | 0001 0111 | -23 | 1110 1001 |
24 | 0001 1000 | -24 | 1110 1000 |
25 | 0001 1001 | -25 | 1110 0111 |
26 | 0001 1010 | -26 | 1110 0110 |
27 | 0001 1011 | -27 | 1110 0101 |
28 | 0001 1100 | -28 | 1110 0100 |
29 | 0001 1101 | -29 | 1110 0011 |
30 | 0001 1110 | -30 | 1110 0010 |
31 | 0001 1111 | -31 | 1110 0001 |
32 | 0010 0000 | -32 | 1110 0000 |
33 | 0010 0001 | -33 | 1101 1111 |
34 | 0010 0010 | -34 | 1101 1110 |
35 | 0010 0011 | -35 | 1101 1101 |
36 | 0010 0100 | -36 | 1101 1100 |
37 | 0010 0101 | -37 | 1101 1011 |
38 | 0010 0110 | -38 | 1101 1010 |
39 | 0010 0111 | -39 | 1101 1001 |
40 | 0010 1000 | -40 | 1101 1000 |
41 | 0010 1001 | -41 | 1101 0111 |
42 | 0010 1010 | -42 | 1101 0110 |
43 | 0010 1011 | -43 | 1101 0101 |
44 | 0010 1100 | -44 | 1101 0100 |
45 | 0010 1101 | -45 | 1101 0011 |
46 | 0010 1110 | -46 | 1101 0010 |
47 | 0010 1111 | -47 | 1101 0001 |
48 | 0011 0000 | -48 | 1101 0000 |
49 | 0011 0001 | -49 | 1100 1111 |
50 | 0011 0010 | -50 | 1100 1110 |
51 | 0011 0011 | -51 | 1100 1101 |
52 | 0011 0100 | -52 | 1100 1100 |
53 | 0011 0101 | -53 | 1100 1011 |
54 | 0011 0110 | -54 | 1100 1010 |
55 | 0011 0111 | -55 | 1100 1001 |
56 | 0011 1000 | -56 | 1100 1000 |
57 | 0011 1001 | -57 | 1100 0111 |
58 | 0011 1010 | -58 | 1100 0110 |
59 | 0011 1011 | -59 | 1100 0101 |
60 | 0011 1100 | -60 | 1100 0100 |
61 | 0011 1101 | -61 | 1100 0011 |
62 | 0011 1110 | -62 | 1100 0010 |
63 | 0011 1111 | -63 | 1100 0001 |
64 | 0100 0000 | -64 | 1100 0000 |
65 | 0100 0001 | -65 | 1011 1111 |
66 | 0100 0010 | -66 | 1011 1110 |
67 | 0100 0011 | -67 | 1011 1101 |
68 | 0100 0100 | -68 | 1011 1100 |
69 | 0100 0101 | -69 | 1011 1011 |
70 | 0100 0110 | -70 | 1011 1010 |
71 | 0100 0111 | -71 | 1011 1001 |
72 | 0100 1000 | -72 | 1011 1000 |
73 | 0100 1001 | -73 | 1011 0111 |
74 | 0100 1010 | -74 | 1011 0110 |
75 | 0100 1011 | -75 | 1011 0101 |
76 | 0100 1100 | -76 | 1011 0100 |
77 | 0100 1101 | -77 | 1011 0011 |
78 | 0100 1110 | -78 | 1011 0010 |
79 | 0100 1111 | -79 | 1011 0001 |
80 | 0101 0000 | -80 | 1011 0000 |
81 | 0101 0001 | -81 | 1010 1111 |
82 | 0101 0010 | -82 | 1010 1110 |
83 | 0101 0011 | -83 | 1010 1101 |
84 | 0101 0100 | -84 | 1010 1100 |
85 | 0101 0101 | -85 | 1010 1011 |
86 | 0101 0110 | -86 | 1010 1010 |
87 | 0101 0111 | -87 | 1010 1001 |
88 | 0101 1000 | -88 | 1010 1000 |
89 | 0101 1001 | -89 | 1010 0111 |
90 | 0101 1010 | -90 | 1010 0110 |
91 | 0101 1011 | -91 | 1010 0101 |
92 | 0101 1100 | -92 | 1010 0100 |
93 | 0101 1101 | -93 | 1010 0011 |
94 | 0101 1110 | -94 | 1010 0010 |
95 | 0101 1111 | -95 | 1010 0001 |
96 | 0110 0000 | -96 | 1010 0000 |
97 | 0110 0001 | -97 | 1001 1111 |
98 | 0110 0010 | -98 | 1001 1110 |
99 | 0110 0011 | -99 | 1001 1101 |
100 | 0110 0100 | -100 | 1001 1100 |
101 | 0110 0101 | -101 | 1001 1011 |
102 | 0110 0110 | -102 | 1001 1010 |
103 | 0110 0111 | -103 | 1001 1001 |
104 | 0110 1000 | -104 | 1001 1000 |
105 | 0110 1001 | -105 | 1001 0111 |
106 | 0110 1010 | -106 | 1001 0110 |
107 | 0110 1011 | -107 | 1001 0101 |
108 | 0110 1100 | -108 | 1001 0100 |
109 | 0110 1101 | -109 | 1001 0011 |
110 | 0110 1110 | -110 | 1001 0010 |
111 | 0110 1111 | -111 | 1001 0001 |
112 | 0111 0000 | -112 | 1001 0000 |
113 | 0111 0001 | -113 | 1000 1111 |
114 | 0111 0010 | -114 | 1000 1110 |
115 | 0111 0011 | -115 | 1000 1101 |
116 | 0111 0100 | -116 | 1000 1100 |
117 | 0111 0101 | -117 | 1000 1011 |
118 | 0111 0110 | -118 | 1000 1010 |
119 | 0111 0111 | -119 | 1000 1001 |
120 | 0111 1000 | -120 | 1000 1000 |
121 | 0111 1001 | -121 | 1000 0111 |
122 | 0111 1010 | -122 | 1000 0110 |
123 | 0111 1011 | -123 | 1000 0101 |
124 | 0111 1100 | -124 | 1000 0100 |
125 | 0111 1101 | -125 | 1000 0011 |
126 | 0111 1110 | -126 | 1000 0010 |
127 | 0111 1111 | -127 | 1000 0001 |
-128 | 1000 0000 |
FAQ
Czym jest uzupełnienie do dwóch?
Uzupełnienie do dwóch to sposób na zapisanie liczb ujemnych w systemie binarnym, gdy znak minus jest niedostępny. Minus jest zastępowany w reprezentacji dwójkowej przez cyfrę, zwykle pierwszą.
- Jeśli początkową cyfrą jest
0
, to liczba jest dodatnia. - Jeśli pierwszą cyfrą jest
1
, to liczba jest ujemna.
Jak wyznaczyć liczbę w systemie binarnym ze znakiem wykorzystując metodę dopełnienia do dwóch?
Aby zamienić wartość z systemu dziesiętnego na binarny z uwzględnieniem znaku:
- Jeśli liczba jest ujemna, odejmij ją od potęgi 2 o wykładniku odpowiadającym liczbie bitów wybranej przez Ciebie reprezentacji.
- Przekształć liczbę na postać binarną.
- Jeśli liczba była ujemna, dopisz na początku
1
i odpowiednią liczbę zer. - Jeśli liczba była dodatnia, dopisz odpowiednią liczbę zer, tak aby łączna liczba cyfr była zgodna z liczbą bitów.
Jakie są wady notacji binarnej ze znakiem?
Notacja dwójkowa z uwzględnieniem znaku (ang. two's complement notation) zabiera jeden bit i traktuje go jako znak. Oznacza to, że używając 8-bitowej reprezentacji, możemy zapisać liczby od -27 = -128 do 27-1 = 127. Jeśli zrezygnujemy z używania liczb ujemnych, 8 bitów pozwoliłoby nam zapisać liczby od 0 do 28-1 = 255.
Ile to jest -37 w systemie binarnym?
8-bitową reprezentacją dwójkową liczby -37 jest 110110112. Aby znaleźć ten wynik:
- Odejmij 37 od 27: 128 - 37 =91.
- Znajdź 91 w systemie binarnym:
91 = 64 + 16 + 8 + 2 + 1
= 1·26 + 0·25 + 1·24 + 1·23 + 0·22 + 1·21 + 1·20
=1011011 - Dopisz 1 z lewej strony, aby zaznaczyć, że zaczynaliśmy od liczby ujemnej oraz żeby liczba bitów wynosiła 8: -3710 = 110110112.