Omni Calculator logo

Kalkulator uzupełnienia do dwóch

Created by Wojciech Sas, PhD
Reviewed by Bogna Szyk and Jack Bowater
Translated by Wojciech Sas, PhD and Anna Szczepanek, PhD
Last updated: Oct 30, 2024


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, 00 lub 11. Zaczynając od prawej strony, kolejne cyfry odpowiadają kolejnym potęgom 2.

Na przykład, 1212 w systemie binarnym to 11001100, ponieważ 12=8+4=123+122+021+02012 = 8 + 4 = 1\cdot2^3 + 1\cdot2^2 + 0\cdot2^1 + 0\cdot2^0 (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 11, aby pokazać, że coś jest obecne lub 00, aby oznaczyć brak tego czegoś, istnieją dwa główne podejścia:

  1. System binarny z uwzględnieniem znaku, albo znak-moduł — Pierwszy bit określa znak. Konwencja jest taka, że liczba zaczynająca się 11 jest ujemna, natomiast zaczynająca się 00 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.

  2. 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:

  1. Wybierz liczbę bitów w swoim zapisie. Im wyższa wartość, tym szerszy zakres liczb, które możesz wprowadzić.

  2. Napisz dowolną liczbę całkowitą w przedziale, który pojawia się w sekcji Dziesiętny na binarny.

  3. … 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:

  1. Wybierz liczbę bitów w reprezentacji binarnej. Załóżmy, że interesują nas wartości w systemie 8-bitowym.

  2. Zapisz swoją liczbę, powiedzmy 16. 16 w systemie binarnym to 1 00001\ 0000.

  3. Dodaj kilka zer z lewej strony, tak aby liczba miała łącznie osiem cyfr, 0001 00000001\ 0000. To jest 16 w notacji binarnej z uwzględnieniem znaku.

A co z liczbą przeciwną, 16-16?

  1. Zamień wszystkie cyfry na ich przeciwieństwa (010\rightarrow1 i 101\rightarrow0). W naszym przypadku to będzie 0001 00001110 11110001\ 0000 \rightarrow 1110\ 1111.

  2. Dodaj 1 do tej liczby, 1110 1111+1=1111 00001110\ 1111 + 1 = 1111\ 0000.

  3. 1111 00001111\ 0000 w systemie binarnym ze znakiem to 16-16 w notacji dziesiętnej. Jednocześnie jest to dopełnienie dwójkowe liczby 0001 00000001\ 0000.

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ć 10111011, 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 1-1 zamiast 11. Zaczynając od prawej strony:

liczba dziesiętna=120+121+022+123+124+125+026127=1+2+8+16+32128=69\scriptsize \begin{split} \rm{liczba\ dziesiętna} &= 1\cdot2^0+1\cdot2^1+0\cdot2^2+1\cdot2^3\\ &+1\cdot2^4+1\cdot2^5+0\cdot2^6-1\cdot2^7\\ &=1+2+8+16+32-128 \\ &= -69 \end{split}

Sposób 2

Warto zauważyć, że skoro pierwsza cyfra to 11, 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:

  1. Zamień wszystkie cyfry, 1011 10110100 01001011\ 1011 \rightarrow 0100\ 0100.
  2. Dodaj jeden do tej wartości, 0100 0100+1=0100 01010100\ 0100 + 1 = 0100\ 0101.
  3. Przekształć tę liczbę do systemu dziesiętnego (zaczynając od prawej strony),
liczba dziesiętna=120+021+122+023+024+025+126+027\scriptsize \begin{split} \qquad \rm{liczba\ dziesiętna} =& \,1\!\cdot\!2^0 \!+\! 0\!\cdot\!2^1 \!+\! 1\!\cdot\!2^2 \!+\! 0\!\cdot\!2^3\\ +& \,0\!\cdot\!2^4 \!+\! 0\!\cdot\!2^5 \!+\! 1\!\cdot\!2^6 \!+\! 0\!\cdot\!2^7 \end{split}
  1. Zatem liczba dziesiętna=1+4+64=69\rm{liczba\ dziesiętna} = 1 + 4 + 64 = 69.
  2. Skoro 6969 jest wartością bezwzględną naszej początkowej (ujemnej) liczby binarnej, to dopisz przed nią znak minus.
  3. 1011 10111011\ 1011 to 69-69 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:

  1. Jeśli liczba jest ujemna, odejmij ją od potęgi 2 o wykładniku odpowiadającym liczbie bitów wybranej przez Ciebie reprezentacji.
  2. Przekształć liczbę na postać binarną.
  3. Jeśli liczba była ujemna, dopisz na początku 1 i odpowiednią liczbę zer.
  4. 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:

  1. Odejmij 37 od 27: 128 - 37 =91.
  2. 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
  3. Dopisz 1 z lewej strony, aby zaznaczyć, że zaczynaliśmy od liczby ujemnej oraz żeby liczba bitów wynosiła 8: -3710 = 110110112.
Wojciech Sas, PhD
Binary number representation
8-bit
Decimal to binary
You can enter a decimal number between -128 and 127.
Decimal
Binary to decimal
You can write a binary number with no more than 8 digits. You don't have to input leading zeros.
Binary
Check out 13 similar binary calculators 1️0️
ANDBinary additionBinary division… 10 more
People also viewed…

Arithmetic sequence

The arithmetic sequence calculator finds the nᵗʰ term and the sum of a sequence with a common difference.

Circle skirt

Circle skirt calculator makes sewing circle skirts a breeze.

Length of a line segment

Use the length of a line segment calculator to determine the length of a line segment by entering the coordinates of its endpoints.

Lost socks

Socks Loss Index estimates the chance of losing a sock in the laundry.