System uzupełnienia do dwóch - U2


Najstarszy bit, to bit znaku. Zatem liczby posiadające znak muszą mieć stałą ilość bitów.

Liczba 5(10) to oczywiście czterobitowe 0101.
Czy zatem 1101 to: -5(10)?

Obliczmy 5 + (-5) =0, prawda?

 0101
+1101
=====
10010
Pomarańczową jedynką nie ma się co przejmować. Jest poza ustalonymi, 4 bitami. Ale na na bicie pierwszym... Przecież wyszło dwa, a suma liczb przeciwnych musi się zerować!

Jednym z łatwiejszych sposobów na zamianę binarnej liczby dodatniej na ujemną jest:
przejście na U1 poprzez inwersję każdego bitu
0101 (2)
1010 (u1)
i na U2, dodając wartość "1"
1011 (u2)

Czy to faktycznie "-5"?
Dodajmy:
 0101
+1011
=====
10000
Działa!

Zamieńmy ją na system dziesiętny:
     1      0     1     1
 - 2^3  + 2^2 + 2^1 + 2^0
    -8           +2    +1
    
Faktycznie, "-5"

Jaka jest zatem najmniejsza liczba w U2 zapisana na 8 bitach?

10000000

czyli -2^7 = -128

a największa?

01111111

czyli 1+2+4+8+16+32+64 = 127

I już wiemy, że zakres liczby ujemnej wykorzystującej 1 bajt to [-128,+127]
Mało tego, wiemy dlaczego!

Poćwicz:
Zamień na 6-bitowy U2:

a) +4
b) -4
c) 1C(16)

oraz z U2 na (10)

a) 0010
b) 1010
c) 100010