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 ===== 10010Pomarań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 ===== 10000Działa!
Zamieńmy ją na system dziesiętny:
1 0 1 1 - 2^3 + 2^2 + 2^1 + 2^0 -8 +2 +1Faktycznie, "-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