Hogy kell ezeket a feladatokat megcsinálni, mik a megoldások?
1. Alakítsa át a következő hexadecimális számot 8 bites bináris alakba: 99
2. Alakítsa át a következő decimális számot előjel nélküli 10 bites bináris alakba: 930
3. Alakítsa át a következő előjeles 8 bites számot decimális alakba: 10010001
Köszi előre is!!
Első: 1001101
Második: 1110100010
Harmadik: 145
Ezt a sima Win-es számológéppel könnyedén meg lehet csinálni.
Vagy kell a pontos levezetése is?
A nagyobbik baj, hogy a három megoldásból kettő hibás.
1) 1001 1001
2) 11 1010 0010
3) -110 /előjeles, tehát - remélhetőleg - kettes komplemens kódban adták meg/
Átváltások:
2-esből 10-esbe:
1) x=0-ból indulsz
2) x-hez hozzáadod a 2-es számrendszerbeli szám első (bal oldali) jegyét.
3) a 2-es számrendszerbeli szám bal oldali jegyét elhagyod
4) x-et megszorzod 2-vel
5) ha még több, mint 1 jegy van, 2)-re lépsz
6) ha már csak egy jegy maradt, hozzáadod x-hez
7) x lesz a 10-es számrendszerbeli szám.
10->2:
1) leírod a szám kettes maradékát.
2) elosztod a 10-es számrendszerbeli számot 2-vel. Ha nem egész, lefelé kerekíted.
3) ha a megmaradt szám nem nulla, akkor 1)-re lépsz. A számjegyeket mindig a leírt szám *elé* írd.
16-os számrendszerhez:
0-tól 9-ig ugyanazok a számjegyek, utána
10=A, 11=B, 12=C, 13=D, 14=E, 15=F
16->2:
a számjegyeket sorban átírod kettes számrendszerbe 4 biten (akár megtanulod fejből a megfelelőjüket, akár a 10-es számrendszerbeli megfelelőjüket átváltod), és egymás után leírod.
2->16:
balról kiegészíted a számodat annyi 0-val, hogy a jegyek száma 4-el osztható legyen. Ezután 4 hosszú darabokra bontod a számot, és ezeket a darabokat (melyek értéke 0 és 15 közötti) átváltod 16-os számrendszerbe.
Ha valahány bitre kell valamit megadni, akkor annyi 0-t írsz elé, hogy megfelelő számú bit legyen. Ha túl sok bited van, az elejéről a 0-kat levághatod.
Ezek voltak az előjeltelen számok.
Az előjeles kettes komplemens ábrázolás se sokkal nehezebb.
2->10:
1) Megnézed az első számjegyet. Ha 0, elhagyod. Ha 1, akkor elhagyod, a megmaradt jegyeket pedig invertálod (0 helyett 1-et, 1 helyett 0-t írsz).
2) az így kapott számot átváltod tízes számrendszerbe, az előjeltelen 10->2 átváltásnak megfelelően.
3) ha az első jegy, amit az 1) pontban néztél, 1 volt, akkor a szám negatív, írj elé egy mínusz jelet.
10->2:
1) ha a szám negatív, hagyd el a mínusz jelet.
2) váltsd ezt át 2-es számrendszerbe az előjeltelen 10->2 szerint.
3) ha az eredeti szám nem volt kisebb, mint 0, akkor a kapott szám elé írj 0-t. Ha az eredeti szám negatív volt, invertáld a kapott szám számjegyeit, majd írj elé 1-t.
Érthető volt?
Csak elrontottam én is... A 3. eredmény -111.
Ha kettes komplemensből váltasz 10-esbe, és 1-el kezdődik a kettes számrendszerbeli szám, akkor a végén az eredményből még le kell vonni 1-et.
Ha 10-esből csinálsz kettes komplemenst, és a szám negatív, először adj hozzá 1-et, utána csináld az algoritmust.
Hmm, jó hosszú válasz, csak nem nekem kellett. :)
Ha hibás, akkor a Windows számológépben van valami eltolva, mert az adta ki. (Lusta voltam rendesen kiszámolni, de lehet egy netes mondjuk wolframalpha vagy google átváltást is csinálni.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!