BEVEZETÉS A SZÁMÍTÓGÉPEK HASZNÁLATÁBA 1 Számrendszerek, logikai műveletek
ELSŐ GYAKORLAT
SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA A feladat elvégzése során a következőket fogjuk gyakorolni: • Számrendszerek közti átváltás előjelesen és előjel nélkül. • Bináris, decimális, hexadexcimális számrendszer. • Logikai műveletek, negáció, és, vagy, kizáró vagy kapcsolat. A feladat megoldása hozzávetőlegesen 80 percet vesz igénybe.
DECIMÁLISBÓL BINÁRISBA ELŐJEL NÉLKÜL Váltsuk át bináris, azaz kettes számrendszerbe a 2013(10)-at. Az átváltáshoz használjuk az úgynevezett akasztófa módszert. Ennél a módszernél az átváltandó számot a maradék leválasztásával – folyamatosan – osztani kell a számrendszer alapjával (jelen esetben kettővel) mindaddig, amíg el nem érjük a nullát. Az osztás hányadosát lefelé egészre kerekítve írjuk az akasztófa bal oldalára, a maradékát pedig a jobbra.
2 Hányados 2013 1006 503 251 125 62 31 15 7 3 1 0
Maradék 1 0 1 1 1 0 1 1 1 1 1 0
A keletkezett nullákat és egyeseket alulról felfelé kell leírni a bináris számban. 2013(10) = 011111011101(2)
BEVEZETÉS A SZÁMÍTÓGÉPEK HASZNÁLATÁBA 2 Számrendszerek, logikai műveletek A számot ábrázoljuk 2 bájton, azaz 16 biten. A számot balról kell kiegészíteni nullákkal, hogy az értéke ne változzon. 2013(10) = 0000011111011101(2) Ha az átváltást fektetett akasztófán végezzük el, akkor egyből a helyes sorrendben kapjuk meg a számot. 0
1
3
7
15
31
62
125
251
0
1
1
1
1
1
0
1
1
503 1006 2013 Hányados 1
0
1 Maradék
ÖNÁLLÓ FELADAT Ábrázolja 2 bájton binárisan a decimális 2517-et!
BINÁRISBÓL DECIMÁLISBA ELŐJEL NÉLKÜL Váltsuk át decimális, azaz tízes számrendszerbe a 0000011111011101(2) számot. A decimális alakot úgy kapjuk meg, hogy az egyes számjegyeket megszorozzuk a kettő hatványaival (a legkisebb helyi értékűt a 20-nal), majd összeadjuk a kapott számokat.
Ugyanúgy dolgozunk, ahogy tízes számrendszerben is felírhatjuk a számot az alaki értékek és a helyi értékek szorzatának az összegeként: 1524(10) = 4 × 100 + 2 × 101 + 5 × 103 + 1 × 104 216
215
214
213
212
211
210
29
28
27
26
25
24
23
22
21
20
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
65536
32768
16384
8192
4096
2048
1024
512
256
128
64
32
16
8
4
2
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1024
512
256
128
64
0
16
8
4
0
1
1024 + 512 + 256 + 128 + 64 + 16 + 8 + 4 + 1 = 2013
0000011111011101(2) = 2013(10) ÖNÁLLÓ FELADAT Mennyi a 0110100111(2) értéke decimálisan?
BEVEZETÉS A SZÁMÍTÓGÉPEK HASZNÁLATÁBA 3 Számrendszerek, logikai műveletek
DECIMÁLISBÓL BINÁRISBA ELŐJELESEN Ábrázoljuk 16 biten bináris számrendszerben a –2013(10)-at. Az átváltáshoz használjuk fel azt, hogy a 2013(10) = 0000001111011101(2). A –2013(10)-at úgy kapjuk meg, hogy vesszük a bináris alak kettes komplemensét. Első lépésben minden bitet az ellentettjére – 0-t 1-re, 1-et 0-ra – cserélünk, más szóval negáljuk, és annyi 1-gyel kiegészítjük a szám elején (ha szükséges), hogy 16 jegyű legyen. Ez a szám eggyel kisebb, mint a kivonandó –1-szeresének kettes komplemens kódja, ezért a kettes komplemens eléréséhez 1-et hozzá kell adni. Amit kaptunk, az nem más, mint a –2013 bináris kódja. 2013 negálás +1 –2013
0000011111011101 1111100000100010 0000000000000001 1111100000100011
Abban az esetben, ha a 2013 bináris kódját nem egészítettük volna ki 0-kal, akkor a negálás után az új kódot 1-esekkel kellett volna feltölteni. 2013 negálás kiegészítés +1 –2013
11111011101 00000100010 1111100000100010 0000000000000001 1111100000100011
0+0=0 0+1=1 1+0=1 1 + 1 = 10 ÖNÁLLÓ FELADAT Ábrázolja 2 bájton binárisan a decimális –2517-et!
BINÁRISBÓL DECIMÁLISBA ELŐJELESEN Váltsuk át decimális, azaz tízes számrendszerbe az előjeles 1111100000100011(2) számot. Első lépésben ezt a számot is negáljuk, majd adjunk hozzá 1-et.
BEVEZETÉS A SZÁMÍTÓGÉPEK HASZNÁLATÁBA 4 Számrendszerek, logikai műveletek
Ha egy előjelesen ábrázolt szám kódja 0-val kezdődik, akkor az adott szám pozitív és ugyanúgy kell átváltani, mintha előjel nélküli lenne. Az itt bemutatott módszert csak az 1gyel kezdődő kódú negatív számoknál kell alkalmazni. átváltandó kód negálás +1 új kód
1111100000100011 0000011111011100 000000000000001 0000011111011101
Az új kódot váltsuk vissza 10-es számrendszerbe, mintha előjel nélküli szám lenne, majd tegyük ki az előjelet. 0000011111011101(2) = 1024(10)+512(10)+256(10)+128(10)+64(10)+16(10)+8(10)+4(10)+1(10)=2013(10) 1111110000100011(2) = –2013(10) ÖNÁLLÓ FELADAT Mennyi az előjelesen ábrázolt 1001011001(2) bináris kód értéke decimálisan?
BINÁRISBÓL HEXADECIMÁLISBA Váltsuk át hexadecimális, azaz 16-os számrendszerbe a 11111011101(2)-t. Az átváltáshoz bontsuk négyes csoportokra, azaz tetrádokra a számot, majd az egyes tetrádokat váltsuk át decimális számrendszerbe. tetrádok értékek hexadecimálisan
0111 7 7
1101 13 D
1101 13 D
10
11
12
13
14
15
A
B
C
D
E
F
LOGIKAI MŰVELETEK NEGÁCIÓ operandus: A IGAZ HAMIS
eredmény: ˥A HAMIS IGAZ
BEVEZETÉS A SZÁMÍTÓGÉPEK HASZNÁLATÁBA 5 Számrendszerek, logikai műveletek
ÉS A következő állítás alapján készítsük el az ÉS (AND) művelet igazságtábláját. Állítás: Ha sikeresen megírod a ZH-kat és a vizsgát, akkor jó jegyet fogsz kapni informatikából, különben rosszat. ZH sikeres sikeres sikertelen sikertelen
vizsga sikeres sikertelen sikeres sikertelen
érdemjegy jó rossz rossz rossz
operandus: A IGAZ IGAZ HAMIS HAMIS
operandus: B IGAZ HAMIS IGAZ HAMIS
eredmény: A˄B IGAZ HAMIS HAMIS HAMIS
VAGY A következő állítás alapján készítsük el a VAGY (OR) művelet igazságtábláját. Állítás: Az egyetemen két lift van, egy piros és egy szürke színű. Ha a piros vagy a szürke lift működik, akkor lifttel megyünk fel az emeletre, különben lépcsőn. piros működik működik nem működik nem működik
szürke működik nem működik működik nem működik
hogyan? lift lift lift lépcső
operandus: A IGAZ IGAZ HAMIS HAMIS
operandus: B IGAZ HAMIS IGAZ HAMIS
eredmény: A˅B IGAZ IGAZ IGAZ HAMIS
KIZÁRÓ VAGY A következő állítás alapján készítsük el a KIZÁRÓ VAGY (XOR) művelet igazságtábláját. Állítás: Este 8-ra vagy moziba, vagy pedig színházba fogunk menni. (Mindenképp megyünk valahova, de egyszerre két helyen nem lehetünk.)
BEVEZETÉS A SZÁMÍTÓGÉPEK HASZNÁLATÁBA 6 Számrendszerek, logikai műveletek mozi megyünk megyünk nem megyünk nem megyünk
színház megyünk nem megyünk megyünk nem megyünk
teljesíthető? nem teljesíthető teljesíthető teljesíthető nem teljesíthető
operandus: A IGAZ IGAZ HAMIS HAMIS
operandus: B IGAZ HAMIS IGAZ HAMIS
eredmény: A≠B HAMIS IGAZ IGAZ HAMIS
PÉLDA FELADATOK 1. A = IGAZ, B = HAMIS, C = ? C = ˥(A˄B˅(B≠B)) a. C = ˥(IGAZ˄HAMIS˅(HAMIS≠HAMIS)) b. C = ˥(IGAZ˄HAMIS˅HAMIS) c. C = ˥(HAMIS˅HAMIS) d. C = ˥HAMIS e. C = IGAZ 2. A = IGAZ, B = HAMIS, C = ? C = ˥(˥A˅˥B)≠˥(˥A˄˥B) a. C = ˥(˥IGAZ˅˥HAMIS)≠˥(˥IGAZ˄˥HAMIS) b. C = ˥(HAMIS˅IGAZ)≠˥(HAMIS˄IGAZ) c. C = ˥(IGAZ)≠˥(HAMIS) d. C = HAMIS≠IGAZ e. C = IGAZ 3. A = IGAZ, B = HAMIS, C = IGAZ, D = ? D = ˥C≠A˅B˅(A˄˥A)≠(C≠B) a. D = ˥IGAZ≠IGAZ˅HAMIS˅(IGAZ˄˥IGAZ)≠(IGAZ≠HAMIS) b. D = HAMIS≠IGAZ˅HAMIS˅HAMIS≠IGAZ c. D = HAMIS
BEVEZETÉS A SZÁMÍTÓGÉPEK HASZNÁLATÁBA 7 Számrendszerek, logikai műveletek ÖNÁLLÓ FELADAT 1. A = HAMIS, B = HAMIS, C = IGAZ, D = ? D = ˥(A˅A)≠(B˅B)≠(C˄C) 2. A = HAMIS, B = IGAZ, C = IGAZ, D = ? D = ˥(A˅(B˄(C≠B)˅C)≠(C˄C)) 3. A = HAMIS, B = HAMIS, C = HAMIS, D = ? D = C˅˥(A˅A˄C)≠(C˄˥C)˄˥B
©Boros Norbert, Dr. Kallós Gábor (SZE), 2013. Minden jog fenntartva