Professional Documents
Culture Documents
Zadanie 1.
X10 = 32,4510 = 0011 0010, 0100 0101BCD
Y10 = 67,8110 = 0110 0111, 1000 0001BCD
Suma:
0’ 0 0 1 1’ 0 0 1 0, 0 1 0 0’ 0 1 0 1
0’ 0 1 1 0’ 0 1 1 1, 1 0 0 0’ 0 0 0 1
0’ 1 0 0 1’ 1 0 0 1, 1 1 0 0’ 0 1 1 0 KOREKTA
0 1 1 0
0’ 1 0 0
1’ 1 0 1 0, 0 0 1 0 KOREKTA
0 1 1 0
0’ 1 0 1 0 0 0 0 0
0 1 1 0 KOREKTA
1’ 0 0 0 0
1’ 0 0 0 0’ 0 0 0 0, 0 0 1 0’ 0 1 1 0
Korekty można było od razu dodać, jeśli się widzi, że występują ofc.
XBCD = 1 0000 0000, 0010 0110
X10 = 100,26
Zadanie 2.
X10 = 32,4510 = 0110 0101, 0111 1000Excess-3
Y10 = 67,8110 = 1001 1010, 1011 0100Excess-3
Suma:
Należy pamiętać, że jeśli z TetradyA przenosimy 1 do TetradyB, to w TetradzieB dodajemy 0011. Jeśli
natomiast taka sytuacja nie zachodzi to dodajemy 1011. Przy korekcie nie przenosi się jedynek dalej
jeśli wyjdą podczas dodawania!
0 0 0 0’ 0 1 1 0’ 0 1 0 1, 0 1 1 1’ 1 0 0 0
0 0 0 0’ 1 0 0 1’ 1 0 1 0, 1 0 1 1’ 0 1 0 0
0 0 0 1’ 0 0 0 0’ 0 0 0 0, 0 0 1 0’ 1 1 0 0
0 0 1 1’ 0 0 1 1’ 0 0 1 1, 0 0 1 1’ 1 1 0 1
0 1 0 0’ 0 0 1 1’ 0 0 1 1, 0 1 0 1’ 1 0 0 1
Zadanie 3.
13 8+4+1
𝑋2 = 8 =8 = 1000,0110′12
3210 32 10
24 16 + 8
𝑌2 = 14 = 14 = 1110,1100′02
3210 32 10
Obliczyć uzupełnienia (dorzuć znak i przepisz liczbę dla dodatnich, dla ujemnych dopisz znak ‘1’, resztę
zaneguj i dodaj 1 do najmłodszego bitu, bo U2) U2:
XU2 = 0’1000,0110’1 -XU2 = 1’0111,1001’1
YU2 = 0’1110,1100’0 -YU2 = 1’0001,0100’0
a) Z1 = XU2 + YU2 = 01’0111,0010’12 = 23,15625
b) Z2 = X - Y = XU2 + (-YU2)
Najpierw dodaj XU2 + (-YU2)
= 1’1001,1010’1
Wynik ujemny, więc coś trzeba z nim zrobić. Postąpić z nim trzeba odwrotnie niż gdy się zamienia na
U2:
Najpierw zaneguj wszystkie bity (pamiętając, że wynik jest ujemny!)
= 0’0110,0101’0
Dodaj jedynkę do najmłodszego bitu:
= 0’0110,0101’1
I to jest wynik:
Z2 = 0’0110,0101’12 = -6,34375
d) Z4 = - X – Y = (-XU2) + (-YU2)
Najpierw dodaj (-XU2) + (-YU2)
= 10’1000,1101’1
Widzimy 1, traktujemy jako znak. (tabelka: https://eduinf.waw.pl/inf/alg/006_bin/0016.php wyników
działań ze względu na znak)
Negujemy wszystko:
= 01’0111,0010’0
I dodajemy 1 (bo U2 i bo ujemny wynik):
= 01’0111,0010’1
Za jakość odpowiada Klub Leniuszka
Z4 = -23,1562510
Zadanie 4.
13 8+4+1
𝑋2 = 8 =8 = 1000,0110′12
3210 32 10
24 16 + 8
𝑌2 = 14 = 14 = 1110,1100′02
3210 32 10
Obliczyć uzupełnienia (dla dodatnich po prostu dorzuć znak i przepisz postać binarną, dla ujemnych
dopisz znak ‘1’, resztę zaneguj i NIE dodawaj 1 do najmłodszego bitu, bo w U1 tego nie robimy):
XU1 = 0’1000,0110’1 -XU1 = 1’0111,1001’0
YU1 = 0’1110,1100’0 -YU1 = 1’0001,0011’1
a) Z1 = XU1 + YU1
Wynik dodatni, liczby dodatnie, tak więc nic nie robimy tylko sumujemy
Z1 = 01’0111,0010’12 = 23,15625
b) Z2 = X - Y = XU1 + (-YU1)
Najpierw dodaj XU1 + (-YU1)
= 1’1001,1010’0
Wynik ujemny, więc coś trzeba z nim zrobić. Postąpić z nim trzeba odwrotnie niż gdy się zamienia na
U1:
Najpierw zaneguj wszystkie bity (pamiętając, że wynik jest ujemny!)
= 0’0110,0101’0
I tutaj ponieważ wcześniej nie dodaliśmy jedynki (bo U1, a nie U2) to teraz też nie dodajemy. Tak więc
powyżej jest już wynik (ujemny, bo moduł liczby ujemnej jest większy od dodatniej!)
Z2 = 0’0110,0101’0 = -6,34375
c) Z3 = -X + Y = (-XU1) + YU1
d) Z4 = - X – Y = (-XU2) + (-YU2)
Najpierw dodaj (-XU2) + (-YU2)
Trzeba poprawić rozdzielczość bo nie wyjdzie (najlepiej zawsze jest dodawać te bity żeby zawsze była
ona nadmiarowa):
-XU1 = 1111’0111,1001’0
-YU1 = 1111’0001,0011’1
Najpierw zsumować:
= 1 1110’1000,1100’1
Widzimy bit przeniesienia 1 którego nie stosuje się do liczb dodatnich. Wynik jest ujemny więc
stosujemy. Bit dodajemy do najmłodszego bita
= 1110’1000,1101’0
Negujemy wszystko (bo liczba ujemna):
= 0001’0111,0010’1
Z4 = -23,1562510
Zadanie 5.
Zamień na BCD i dopisz z przodu znak (0 - plus):
𝑋𝐵𝐶𝐷 = 04,1510 = 0000 0100, 0001 0101𝐵𝐶𝐷
𝑌𝐵𝐶𝐷 = 07,8310 = 0000 0111, 1000 0011𝐵𝐶𝐷
Obliczyć uzupełnienia dziewiątkowe (do każdej tetrady dodaj korektę 01102, a następnie zaneguj
wszystkie bity!):
XU9 = 1001 0101, 1000 0100 , 1001 – l. ujemna
YU9 = 1001 0010, 0001 0110 , 1001 – l.ujemna
a) Z1 = X + Y
Nie wiem, ktoś tak zrobił... W każdym razie sumujemy XBCD oraz YBCD:
0 0 0
0’ 0 1 0 0, 0 0 0 1’ 0 1 0 1
0 0 0
0’ 0 1 1 1, 1 0 0 0’ 0 0 1 1
0 0 0
0’ 1 0 1 1, 1 0 0 1’ 1 0 0 0
0 1 1 0 KOREKTA
0 0 0 1’ 0 0 0 1, 1 0 0 1’ 1 0 0 0
Z1 = 0001 0001, 1001 1000
Z1 = 11,9810
Za jakość odpowiada Klub Leniuszka
b) Z2 = X – Y = X + YU9
Liczba 1001 z przodu oznacza, że wynik jest ujemny i że to jest uzupełnienie, trzeba zatem
rozkodować wynik. Dodajemy do każdej tetrady 0110:
1 0 0 1’ 0 1 1 0, 0 0 1 1’ 0 0 0 1
0 1 1 0’ 0 1 1 0, 0 1 1 0’ 0 1 1 0
1 1 1 1’ 1 1 0 0, 1 0 0 1’ 0 1 1 1
= 1111 1100, 1001 0111
Wiemy że wynik jest ujemny (bo w wyniku było 1001), zatem odczytując wynik mamy:
Z2 = -3,68
c) Z3 = -X + Y
Jeśli gdzieś w wyniku sumowania przenosi się bit z młodszej do starszej tetrady (patrz książka str. 61)
to w tej tetradzie również dodajemy korektę (np. dodawanie 910 + 910 = 1210 -> korekta -> 1810)
1 0 0 1’ 0 1 0 1, 1 0 0 0’ 0 1 0 0
0 0 0 0’ 0 1 1 1, 1 0 0 0’ 0 0 1 1
1 0 0 1’ 1 1 0 1, 0 0 0 0’ 0 1 1 1
0 1 1 0 0 1 1 0 KOREKTA
1 0 1 0’ 0 0 1 1, 0 1 1 0’ 0 1 1 1
0 1 1 0 KOREKTA
1 0 0 0 0’ 0 0 1 1, 0 1 1 0’ 0 1 1 1
1 Bit przeniesienia
0 0 0 0’ 0 0 1 1, 0 1 1 0’ 1 0 0 0
Liczba 0000 z przodu oznacza, że wynik jest dodatni. Oznacza to zatem że nic nie musimy dalej robić i
można wprost odczytać wynik:
Przypomnienie, że jeśli w wyniku sumowania przechodzi bit z młodszej tetrady do starszej to trzeba
zastosować korektę 0110.
1 0 0 1’ 0 1 0 1, 1 0 0 0’ 0 1 0 0
1 0 0 1’ 0 0 1 0, 0 0 0 1’ 0 1 1 0
1 0 0 1 0’ 0 1 1 1, 1 0 0 1’ 1 0 1 0
0 1 1 0 0 1 1 1 KOREKTA, bit przeniesienia
1 0 0 0’ 0 1 1 1, 1 0 1 0’ 0 0 0 1
0 1 1 0 KOREKTA
1 0 0 0’ 1 0 0 0, 0 0 0 0’ 0 0 0 1
Teraz mając wynik 1000 1000, 0000 0001 i wiedząc, że jest on ujemny trzeba to rozkodować.
Dodajemy do każdej tetrady 0110
I odczytujemy wynik:
Jak trafi się jednak takie zadanie to lepiej liczyć je jako – (X + Y), prostsze działania są.
Zadanie 6.
Zamień na BCD i dopisz z przodu znak (0 - plus):
𝑋𝐵𝐶𝐷 = 04,1510 = 0000 0100, 0001 0101𝐵𝐶𝐷
𝑌𝐵𝐶𝐷 = 07,8310 = 0000 0111, 1000 0011𝐵𝐶𝐷
Obliczyć uzupełnienia dziesiątkowe (do każdej tetrady dodaj korektę 01102, a następnie zaneguj
wszystkie bity i dodaj +1 do najmłodszego bita – bo U10!):
XU10 = 1001 0101, 1000 0101 , 1001 – l. ujemna
YU10 = 1001 0010, 0001 0111 , 1001 – l.ujemna
Za jakość odpowiada Klub Leniuszka
a) Z1 = X + Y
Nie wiem, ktoś tak zrobił... W każdym razie sumujemy XBCD oraz YBCD:
0 0 0
0’ 0 1 0 0, 0 0 0 1’ 0 1 0 1
0 0 0
0’ 0 1 1 1, 1 0 0 0’ 0 0 1 1
0 0 0
0’ 1 0 1 1, 1 0 0 1’ 1 0 0 0
0 1 1 0 KOREKTA
0 0 0 1’ 0 0 0 1, 1 0 0 1’ 1 0 0 0
Z1 = 0001 0001, 1001 1000
Z1 = 11,9810
b) Z2 = X – Y = X + YU9
Liczba 1001 z przodu oznacza, że wynik jest ujemny i że to jest uzupełnienie, trzeba zatem
rozkodować wynik. Dodajemy do każdej tetrady 0110:
1 0 0 1’ 0 1 1 0, 0 1 0 0’ 0 0 1 0
0 1 1 0’ 0 1 1 0, 0 1 1 0’ 0 1 1 0
1 1 1 1’ 1 1 0 0, 1 0 1 0’ 1 0 0 0
= 1111 1100, 1010 1000
Wiemy że wynik jest ujemny (bo w wyniku było 1001), zatem odczytując wynik mamy:
Z2 = -3,68
Za jakość odpowiada Klub Leniuszka
c) Z3 = -X + Y
Jeśli gdzieś w wyniku sumowania przenosi się bit z młodszej do starszej tetrady (patrz książka str. 61)
to w tej tetradzie również dodajemy korektę (np. dodawanie 910 + 910 = 1210 -> korekta -> 1810)
1 0 0 1’ 0 1 0 1, 1 0 0 0’ 0 1 0 1
0 0 0 0’ 0 1 1 1, 1 0 0 0’ 0 0 1 1
1 0 0 1’ 1 1 0 1, 0 0 0 0’ 1 0 0 0
0 1 1 0 0 1 1 0 KOREKTA, bit przeniesienia
1 0 1 0’ 0 0 1 1, 0 1 1 0’ 1 0 0 0
0 1 1 0 KOREKTA
1 0 0 0 0’ 0 0 1 1, 0 1 1 0’ 1 0 0 0
W U10 NIE DODAJEMY TEGO BITU 1 DO NAJMŁODSZEJ TETRADY (przykład str. 67)
Zatem zauważamy, że liczba 0000 z przodu oznacza, że wynik jest dodatni. Oznacza to zatem że nic
nie musimy dalej robić i można wprost odczytać wynik:
Przypomnienie, że jeśli w wyniku sumowania przechodzi bit z młodszej tetrady do starszej to trzeba
zastosować korektę 0110.
1 0 0 1’ 0 1 0 1, 1 0 0 0’ 0 1 0 1
1 0 0 1’ 0 0 1 0, 0 0 0 1’ 0 1 1 1
1 0 0 1 0’ 0 1 1 1, 1 0 0 1’ 1 1 0 0
0 1 1 0 0 1 1 0 KOREKTA
1 0 0 0’ 0 1 1 1, 1 0 1 0’ 0 0 1 0
0 1 1 0 KOREKTA
1 0 0 0’ 1 0 0 0, 0 0 0 0’ 0 0 1 0
Teraz mając wynik 1000 1000, 0000 0010 i wiedząc, że jest on ujemny trzeba to rozkodować.
Dodajemy do każdej tetrady 0110
Jak trafi się jednak takie zadanie to lepiej liczyć je jako – (X + Y), prostsze działania są.
Zadanie 7.
X = 4,75
X(U9) = 04,75
X(BCD) = 0 0000 0100, 0111 0101
X(Excess) = 0 0011 0111, 1010 1000
-X = -4,75
Y = 7,23
Y(U9) = 07,23
Za jakość odpowiada Klub Leniuszka
-Y = -7,23
Sprawdzenie: 0 0110 0100, 1100 1011 (Excess) -> 0 0001 0001, 1001 1000 (BCD) -> 11,98 (U9)
Sprawdzenie: 1 1100 1010, 1000 0100 (Excess) -> 1 1001 0111, 0101 0001 (BCD) -> 97,51(U9) (LICZBA
UJEMNA) -> +X – Y = 97,51 – 100 + 0,01 = -2,48
Sprawdzenie: 1 0100 0011 0101, 0111 1010(excess) -> 1 0001 0000 0010, 0100 0111 (BCD) ->
102,47(U9) (BIT ZNAKU = 1 ) -X + Y = 102,47 – 100 + 0,01 = 2,48
Ponadto liczymy w U9 więc tak jak w U1 w przypadku liczb ujemnych jeśli nastąpiło
przeniesienie na najbardziej znaczącej cyfrze, wartość przeniesienia dodajemy do ostatniej
tetrady
Wynik: 1 1011 1011, 1101 0100
Sprawdzenie: 1 1011 1011, 1101 0100(excess) -> 1 1000 1000, 1010 0001 (BCD) (Jedna tetrada ma
wartość 1010, co oznacza korektę + 0110, ale bez przeniesienia) -> 1 1000 1000, 0000 0001 (BCD) ->
88,01(U9) (BIT ZNAKU = 1) -X-Y = 88,01 – 100 + 0,01 = -11,98
Zadanie 8.
X = 4,75
X(U10) = 04,75
X(BCD) = 0 0000 0100, 0111 0101
X(Excess) = 0 0011 0111, 1010 1000
-X = -4,75
Y = 7,23
Y(U10) = 07,23
Y(BCD) = 0 0000 0111, 0010 0011
Y(Excess) = 0 0011 1010, 0101 0110
-Y = -7,23
Sprawdzenie: 0 0110 0100, 1100 1011 (Excess) -> 0 0001 0001, 1001 1000 (BCD) -> 11,98 (U10)
Sprawdzenie: 1 1100 1010, 1000 0101 (Excess) -> 1 1001 0111, 0101 0010 (BCD) -> 97,52(U10)
(LICZBA UJEMNA) -> +X – Y = 97,52 – 100 = -2,48
Sprawdzenie: 1 0100 0011 0101, 0111 1011(excess) -> 1 0001 0000 0010, 0100 1000 (BCD) ->
102,48(U10) (BIT ZNAKU = 1 ) -X + Y = 102,48 – 100 = 2,48
Sprawdzenie: 1 1011 1011, 1101 0101(excess) -> 1 1000 1000, 1010 0010 (BCD) (Jedna tetrada ma
wartość 1010, co oznacza korektę + 0110, ale bez przeniesienia) -> 1 1000 1000, 0000 0010 (BCD) ->
88,02(U10) (BIT ZNAKU = 1) -X-Y = 88,02 – 100 = -11,98