Działania w systemie binarnym

Download Report

Transcript Działania w systemie binarnym

Działania w systemie binarnym
M@rek Pudełko
Urządzenia Techniki Komputerowej
1
Działania w kodzie binarnym
• Dodawanie
• 0+0= 0
• 0+1= 1
• 1+0= 1
• 1 + 1 = 10
• Mnożenie
• 0*0=
• 0*1=
• 1*0=
• 1*1=
2
0
0
0
1
Dodawanie w kodzie binarnym
• Dodawanie jest analogicznym procesem jak dla
systemu dziesiętnego:
• 1011011 + 1001010
+
1
1
0
0
1
0
3
1
1
0
0
1
1
1
0
Dodawanie w kodzie binarnym
• Dodajemy od najbardziej skrajnie prawej
kolumny w kierunku do lewej.
• 1+0=1
+
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
4
Dodawanie w kodzie binarnym
• Kiedy suma jest większa niż 1, nadwyżkę musimy
przesunąć na wyższą pozycję.
• 1 + 1 = 10
+
1
1
0
0
1
0
5
1
1
1
0
0
1
1
1
0
0
1
Dodawanie w kodzie binarnym
• Nadwyżkę sumujemy z sumą aktualnego
dodawania.
• 0 + 0= 0
• 0+1=1
+
1
1
0
0
1
0
6
1
1
1
0
0
1
1
1
0
1
0
1
Dodawanie w kodzie binarnym
• Znów przeniesienie.
• 1 + 1 = 10
+
1
1
0
0
1
1
0
7
1
1
0
0
1
1
1
0
0
1
0
1
Dodawanie w kodzie binarnym
• Przeniesienie sumuje się z następną pozycją.
• 1+0= 1
• 1 + 1 = 10
+
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
8
Dodawanie w kodzie binarnym
• Przeniesienie po raz kolejny.
• 0+0= 0
• 1+0= 1
+
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
9
Dodawanie w kodzie binarnym
• Ostatnie dodawanie.
• 1 + 1 = 10
1
+
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
10
Dodawanie w kodzie binarnym
• I ostatnie dodawanie.
• 1+0= 1
1
+
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
11
Dodawanie w kodzie binarnym
• 1011011 + 1001010 = 10100101.
• Zamień liczby binarne na dziesiętne i sprawdź
poprawność dodawania
12
Dodawanie w kodzie binarnym
• Przy liczbach nierównej długości mniejszą z nich
uzupełniamy zerami z przodu
• 1011011 + 1010
+
1
0
0
0
1
0
13
1
1
0
0
1
1
1
0
Dodawanie - ćwiczenia
1. 10101001 + 10011010
2. 10000001 + 10011101
3. 11111110 + 10010001
4. 10111001 + 10011010
5. 10101000 + 10111010
6. 10101111 + 11011011
7. 10111101 + 10011000
8. 10001110 + 10011011
9. 11000001 + 10000011
10.11110000 + 11000110
14
Mnożenie w kodzie binarnym
• Mnożenie jest bardzo podobne jak w systemie
dziesiętnym. Polega na dodaniu sum cząstkowych.
• 10101 * 101
1
+
15
0
*
1
1
0
0
1
1
Mnożenie w kodzie binarnym
• Wykorzystujemy znane nam zasady mnożenia w
systemie binarnym
1
+
16
0
*
1
1
0
0
1
1
Mnożenie w kodzie binarnym
• Wykorzystujemy znane nam zasady mnożenia w
systemie binarnym
• 0 * 0 = 0, 0 * 1 = 0, 1 * 0 = 0, 1 * 1 = 1,
1
0
*
1
1
0
0
1
1
1
0
1
0
1
+
17
Mnożenie w kodzie binarnym
• Mnożną mnożymy przez każdą cyfrę mnożnika.
0
1
0
*
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
+
18
Mnożenie w kodzie binarnym
• Mnożną mnożymy przez każdą cyfrę mnożnika.
+
1
0
0
1
0
*
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
19
Mnożenie w kodzie binarnym
• Uzyskane sumy cząstkowe następnie dodajemy.
+
1
1
0
0
1
1
0
*
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
20
Mnożenie w kodzie binarnym
• Mnożenie przez zero możemy opuścić
• Należy jednak pamiętać o przesunięciu
następnej sumy cząstkowej w lewo
+
1
1
0
1
1
0
*
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
• Samo mnożenie przez jeden jest bardzo proste.
• Sprowadza się do dodawania odpowiednio
przesuniętej mnożnej.
21
Mnożenie w kodzie binarnym
• Mnożenie przez zero możemy opuścić
• Należy jednak pamiętać o przesunięciu
następnej sumy cząstkowej w lewo
+
1
1
0
1
1
0
*
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
• Samo mnożenie przez jeden jest bardzo proste.
• Sprowadza się do dodawania odpowiednio
przesuniętej mnożnej.
22
Mnożenie - ćwiczenia
1. 11001010 * 1101
2. 1000 * 1111
3. 110 * 10101
4. 1111 * 1111
5. 10100*1011
6. 10110010*1010
7. 11000*10111
8. 101010*10001
9. 10101*11111
10.11100*11111
23
Mnożenie w kodzie binarnym
• 1111 * 1111
*
+
1
1
1
1
1
1
24
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Mnożenie w kodzie binarnym
• 1111 * 1111
1+1=
2=
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
102
+
*
1
25
Mnożenie w kodzie binarnym
• 1111 * 1111
1+1+ 1+1=
4= 1002
*
1
+
1
1
1
1
1
1
26
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
Mnożenie w kodzie binarnym
• 1111 * 1111
1+1+ 1+1=
4= 1002
*
0
1
1
+
1
1
1
1
1
1
27
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
Mnożenie w kodzie binarnym
• 1111 * 1111
1+1+ 1+1=
4= 1002
1
+
1
*
0
1
1
0
1
1
1
1
1
0
28
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
Mnożenie w kodzie binarnym
• 1111 * 1111
1+1+
1=
3=
+
112
1
1
1
*
0
1
1
0
1
1
1
1
1
1
0
29
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
Mnożenie w kodzie binarnym
• 1111 * 1111
1+1+
1=
3=
112
1
1
*
0
1
1
0
1
1
1
+
1
1
1
1
1
1
0
30
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
Odejmowanie w kodzie binarnym
• 23 – 5 = 101112 - 1012
1
-
0
1
1
1
1
0
1
31
Odejmowanie w kodzie binarnym
• Uzupełniamy mniejszą liczbę zerami z przodu
-
1
0
1
1
1
0
0
1
0
1
32
Odejmowanie w kodzie binarnym
• Odjemnik negujemy
• tzn. 1 zmieniamy na 0, a 0 na 1.
-
1
0
1
1
1
0
0
1
0
1
33
1
0
1
1
1
1
1
0
1
0
Odejmowanie w kodzie binarnym
• Odjemnik negujemy
• tzn. 1 zmieniamy na 0, a 0 na 1.
-
1
0
1
1
1
0
0
1
0
1
34
1
0
1
1
1
1
1
0
1
0
Odejmowanie w kodzie binarnym
• Następnie liczby dodajemy do siebie
1
0
1
1
1
+
1
1
0
1
0
1
1
0
0
0
1
35
Odejmowanie w kodzie binarnym
• Z uzyskanego wyniku najwyższą jedynkę odcinamy
od liczby i dodajemy ją do pozostałej liczby.
1
1
0
0
0
1
1
0
0
0
+
1
36
1
1
0
0
1
0
Odejmowanie w kodzie binarnym
• 23 – 5 =
• 101112 - 1012 = 100102
• 23 – 5 = 18
37
Odejmowanie - ćwiczenia
1. 11001010 - 1101
2. 10001 - 1111
3. 11010 - 10101
4. 11111 - 1111
5. 10100 - 1011
6. 10110010 - 1010
7. 11000 - 10111
8. 101010 - 10001
9. 10101 0- 11111
10.111001 - 11111
38
Dzielenie w kodzie binarnym
• Dzielenie jest robione analogicznie jak w systemie
dziesiętnym.
• Jest to cykliczne odejmowanie dzielnika od dzielnej.
Wynikiem jest iloraz – ilość odejmowań.
• 35:7 = 1000112 : 1112
1
0
0
0
1
39
1
:
1
1
1
Dzielenie w kodzie binarnym
1
0
0
0
-
1
1
1
1
1
:
1
1
• Usiłujemy odjąć 111 od
odjemnej. Szukamy liczby
większej lub równej 111.
40
1
• 10
< 111
• 100 < 111
• 1000 >= 111
Dzielenie w kodzie binarnym
1
1
0
0
0
-
1
1
1
1
1
1
:
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
+
1
0
0
0
1
0
0
0
0
0
0
0
0
+
1
-
-
• Odejmujemy 1000 – 111 = 1
• Nad kreską dzielenia piszemy
ile razy podzielnik się mieści
=1
41
1
Dzielenie w kodzie binarnym
1
0
1
1
0
0
0
-
1
1
1
1
1
:
1
1
1
• 11
< 111
1
• Dopisujemy do wyniku odejmowania
wcześniejszego kolejna cyfrę. Jednak dalej jest
mniejsza niż podzielnik.
• Nad kreską dzielenia piszemy ile razy mieści się
podzielnik = 0
42
Dzielenie w kodzie binarnym
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
-
1
1
1
:
1
1
1
0
• Odejmujemy 111 – 111 = 0
• Nad kreską ułamkową
piszemy ile razy podzielnik
się mieści = 1
43
Dzielenie - ćwiczenia
1. 11001: 101
2. 11110 : 101
3. 11011 : 11
4. 101000 : 100
5. 110001 : 111
6. 111111 : 1001
7. 1000110 : 1010
8. 1001011 : 1111
9. 1010001 : 1001
10.1100100 : 101
44
45