informatyka:podstawy-dzialania-komputera:ujemne_liczby_dwojkowe

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
informatyka:podstawy-dzialania-komputera:ujemne_liczby_dwojkowe [2024/05/08 16:05] kawcixinformatyka:podstawy-dzialania-komputera:ujemne_liczby_dwojkowe [2024/05/08 18:19] (current) kawcix
Line 1: Line 1:
 ====== 9 Zapisy Liczby dwójkowej ze znakiem ====== ====== 9 Zapisy Liczby dwójkowej ze znakiem ======
 +
 +Istnieją następujące sposoby:
 +
 +  * Znak moduł - ZM
 +  * Uzupełnienie do 1
 +  * Uzupełnienie do 2
 +
 +Najlepszy i najczęściej używany jest uzupełnienie do 2 (U2)
 +
 +===== Znak moduł - ZM =====
 +
 +Obok najstarszego bitu liczby (pierwszy od lewej) dodaję się bit znaku. Wynosi on 0 dla liczby dodatniej i 1 dla liczby ujemnej. Pozostałe bity reprezentują wartość bezwzględną liczby.
 +
 +np liczba 12 to w systemie dwójkowym 1100 (0*1 + 0*2 + 1*4 + 1*8) ([[informatyka:podstawy-dzialania-komputera:dwojkowy_system_liczbowy|6 Dwójkowy system liczbowy]])
 +
 +liczba ta z znakiem plus w systemie znak moduł, zakładając że reprezentujemy ją w 8 - bitowej zmiennej wygląda tak:
 +
 +0.0001100
 +
 +liczba ta z znakiem minus będzie miała 1 na początku:
 +
 +1.0001100
 +
 +System ten nie jest najczęściej używany, ponieważ ma wady. Mamy w nim dwa zera 0 i -0.
 +
 +Kolejnym kłopotem jest implementacja operacji arytmetycznych i innych rzeczy...
 +
 +===== Uzupełnienie do 1 =====
 +
 +
 +Liczby dodatnie zapisujemy tak jak w systemie znak moduł, ale gdy liczba jest ujemna następuje odwrócenie wszystkich bitów liczby ( zamiania zer na jedynki, i jedynek na zera)
 +
 +przykład:
 +
 +liczba 12 = 1100
 +
 ++12 w systemie u1 - 0.0001100
 +
 +-12 w systemie u2 - 1.1110011
 +
 +===== Uzupełnienie do 2 =====
 +
 +Liczby dodatnie zapisujemy tak samo jak w systemie znak moduł i u1. A kiedy liczba jest ujemna robimy uzupełnienie do 1 (odwracamy wszystkie bity liczby) i dodajemy liczbę jeden.
 +
 +przykład:
 +
 +liczba 12 = 1100
 +
 ++12 w systemie uzupełnienia do 2 :
 +
 +0.0001100
 +
 +-12 w systemie uzupełnienia do 2 = 1.1110100
 +
 +
 +{{:informatyka:podstawy-dzialania-komputera:12wznakuzupelnieniedo2.png?600|}}
 +
 +===== Dlaczego dodawanie w systemie uzupełnienia do 2 jest fajne? =====
 +
 +Dlatego, że będzie ono "kompatybilne" z dodawaniem liczb bez znaków itp
 +
 +[[informatyka:podstawy-dzialania-komputera:adder_sumator|8 Adder (Sumator)]]
 +
 +Na przykład. -2 + (-3) = -5
 +
 +-2 w systemie uzupełnienia do 2 to normalnie 14
 +
 +-3 to 13
 +
 +14 + 13 to 27
 +
 +Sumator który zbudowaliśmy odrzuci bit "carry" bo 27 potrzebuje 5 bitów i zostanie nam 11, a 11 w systemie uzupełnienia do 2 to -5
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
  • informatyka/podstawy-dzialania-komputera/ujemne_liczby_dwojkowe.1715177103.txt
  • Last modified: 2024/05/08 16:05
  • by kawcix