1 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 Maradék 2013 1 1006 0 503 1 251 1 125 1 62 0 31 1 15 1 7 1 3 1 1 1 0 0 A keletkezett nullákat és egyeseket alulról felfelé kell leírni a bináris számban. 2013 (10) = 011111011101 (2)
2 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 503 1006 2013 Hányados 0 1 1 1 1 1 0 1 1 1 0 1 Maradék Á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 2 0 -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 10 0 + 2 10 1 + 5 10 3 + 1 10 4 2 16 2 15 2 14 2 13 2 12 2 11 2 10 2 9 2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 = = = = = = = = = = = = = = = = = 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) Mennyi a 0110100111 (2) értéke decimálisan?
3 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 0000011111011101 negálás 1111100000100010 +1 0000000000000001 2013 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 11111011101 negálás 00000100010 kiegészítés 1111100000100010 +1 0000000000000001 2013 1111100000100011 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Á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.
4 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 1- gyel kezdődő kódú negatív számoknál kell alkalmazni. átváltandó kód 1111100000100011 negálás 0000011111011100 +1 000000000000001 új kód 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) 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 0111 1101 1101 értékek 7 13 13 hexadecimálisan 7 D 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
5 É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 vizsga érdemjegy sikeres sikeres jó sikeres sikertelen rossz sikertelen sikeres rossz sikertelen sikertelen rossz VAGY operandus: A operandus: B eredmény: A B IGAZ IGAZ IGAZ IGAZ HAMIS HAMIS HAMIS IGAZ HAMIS HAMIS HAMIS HAMIS 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 szürke hogyan? működik működik lift működik nem működik lift nem működik működik lift nem működik nem működik lépcső KIZÁRÓ VAGY operandus: A operandus: B eredmény: A B IGAZ IGAZ IGAZ IGAZ HAMIS IGAZ HAMIS IGAZ IGAZ HAMIS HAMIS HAMIS 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.)
6 mozi színház teljesíthető? megyünk megyünk nem teljesíthető megyünk nem megyünk teljesíthető nem megyünk megyünk teljesíthető nem megyünk nem megyünk nem teljesíthető PÉLDA FELADATOK operandus: A operandus: B eredmény: A B IGAZ IGAZ HAMIS IGAZ HAMIS IGAZ HAMIS IGAZ IGAZ HAMIS HAMIS HAMIS 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
7 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