Wróć do: Teoria
średni systemy liczbowebinarnydodawaniematura rozszerzona z informatyki

Dodawanie binarne (z przeniesieniem)

Dodawanie liczb w systemie dwójkowym – cztery reguły, przeniesienie na następną pozycję i typowe błędy przy dłuższych liczbach.

01

Opis

Dodawanie binarne działa tak samo jak pisemne dodawanie w słupku, którego uczyliśmy się w podstawówce – tylko cyfry są dwie zamiast dziesięciu, a przeniesienie pojawia się dużo częściej.

Reguły są cztery. Zero plus zero daje zero. Zero plus jeden daje jeden. Jeden plus zero daje jeden. I ta jedyna nieoczywista: jeden plus jeden daje zero z przeniesieniem jedynki na następną pozycję w lewo.

Może się zdarzyć, że na jednej pozycji dodajemy trzy jedynki: dwie z liczb i jedną z przeniesienia. Wtedy wynikiem jest jeden, a przeniesienie znów wynosi jeden.

02

Jak to działa

Dodajemy 1011 i 0110, licząc od prawej:

  • pozycja 1: 1 + 0 = 1, bez przeniesienia
  • pozycja 2: 1 + 1 = 0, przeniesienie 1
  • pozycja 3: 0 + 1 + przeniesienie 1 = 0, przeniesienie 1
  • pozycja 4: 1 + 0 + przeniesienie 1 = 0, przeniesienie 1
  • przeniesienie wychodzi poza liczbę i tworzy nową pozycję: 1

Wynik: 10001. Sprawdzenie dziesiętne: 11 + 6 = 17, a 10001 to 16 + 1 = 17.

03

Pseudokod

funkcja dodaj_binarnie(a, b):
  wynik  ""
  przeniesienie  0
  i  długość(a) - 1
  dopóki i  0:
    suma  a[i] + b[i] + przeniesienie
    wynik  (suma mod 2) + wynik
    przeniesienie  suma div 2
    i  i - 1
  jeżeli przeniesienie = 1:
    wynik  "1" + wynik
  zwróć wynik

Na maturze

Dodawanie binarne pojawia się zwykle jako krótkie obliczenie do wykonania ręcznie, czasem połączone z pytaniem o zakres liczb lub o przepełnienie.

Największe ryzyko to zgubienie ostatniego przeniesienia. Jeśli po najstarszej pozycji zostaje jedynka, wynik jest o jeden bit dłuższy niż składniki – i ten bit trzeba dopisać.

05

Zapamiętaj

  • Jedyna nieoczywista reguła: 1 + 1 = 0 z przeniesieniem 1.
  • Trzy jedynki na jednej pozycji dają 1 i przeniesienie 1.
  • Dodajemy od prawej do lewej, tak jak w słupku dziesiętnym.
  • Ostatnie przeniesienie tworzy nową, najstarszą pozycję – nie wolno go pominąć.
06

Najczęściej zadawane pytania

Co się dzieje, gdy wynik nie mieści się w bajcie?

Mówimy o przepełnieniu. Przy stałej liczbie bitów najstarsze przeniesienie przepada i wynik jest błędny – dlatego procesor sygnalizuje taki przypadek osobną flagą.

Jak sprawdzić wynik bez zamiany na dziesiętny?

Najprościej dodać liczby jeszcze raz, ale w odwrotnej kolejności składników. Dodawanie jest przemienne, więc drugi przebieg musi dać ten sam wynik.

Czy odejmowanie binarne działa podobnie?

Tak, z pożyczką zamiast przeniesienia. W praktyce komputery odejmowania nie wykonują wprost – zamieniają je na dodawanie liczby przeciwnej zapisanej w kodzie U2.

Powiązane zagadnienia