Valaki segítene megoldani ezt a feladatot? (elektronika hardware alap)
Elektronika, hardware alap ismeretek részében:
Te hát a feladat:
Modulo: 31
Ábrázolni kell 41.9 -et real short lebegőpontos formátumban.
és add hozzá a 33.5 -öt majd a végeredményt ábrázold real short formátumban hexadecimálisan és IBM real formátumban is.
Sajnos én el sem tudom kezdeni, pls help!
A modulo 31 nem tudom, hogy kerül oda.
A kezdő lépés az, hogy át kell írni 2-es számrendszerbe. Az egész résszel nincs gond (41: 101001), a tizedeket viszont kettedekbe kell átírni. Kis szívás, hogy a 9 tized végtelen kettedes tört lesz!
A kettedekbe írás úgy megy, hogy 2-vel szorozzuk a számot, és közben a kijövő egészek lesznek a kettedes bitek:
0,9·2 = 1,8 = 1+0,8 ==> 1
0,8·2 = 1,6 = 1+0,6 ==> 1
0,6·2 = 1,2 = 1+0,2 ==> 1
0,2·2 = 0,4 = 0+0,4 ==> 0
0,4·2 = 0,8 = 0+0,8 ==> 0
0,8 már volt, úgyhogy innen kezdve ismétlődik a 4 hosszú szakasz, tehát ezt a kettedes törtet kaptuk:
0.1110011001100110011001100... stb a végtelenségig
Az egész részt (41) is hozzátéve
41.9: 101001.1110011001100110011001100...
Idáig az IEEE-754 meg az IBM formátumra alakítás ugyanúgy ment, de mostantól más. Ugyanis az IEEE kettes számrendszerben megy tovább is, az IBM pedig 16-osban.
IEEE: normalizálni kell, hogy 1.b·2^e legyen:
1.010011110011001100110011001100...·2^5
Mivel ez mindig 1-gyel kezdődik (a 0 nem, de az speciálisan van kódolva!), ezért a kezdő 1-et nem rakjuk be a float-ba. A tört rész 23 bites:
.01001111001100110011001
Viszont a kerekítést is figyelembe kell venni: default módban a legközelebbi számhoz kerekít. Mivel a lehagyott folytatás 1001100..., nagyobb 1/2-nél, növelni kell eggyel a tört részt. A teljes szám ez lett:
1.01001111001100110011010·2^5
Az előjel pozitív, tehát az előjelbit 0. Az exponens +5, aminek a kódja: 127+5=132 (8 bit exponens, bias 127)
0-10000100-01001111001100110011010
Csoportosítva 4-esével:
0100-0010-0010-0111-1001-1001-1001-1010
Vagyis hexadecimálisan:
4227999A
Az IBM formátumot majd folytatom...
Tehát 49.1: 101001.1110011001100110011001100...
Az IBM formátum ilyen jellegű számokat ábrázol: 0.x·16^e
Vagyis 4-esével kell balra shiftelni a kettedespontot:
0.001010011110011001100110011001100...·16^2
A törtrész 24 bites (nem 23, mint az IEEE-nél, bár az IEEE elhagyott 1-esével együtt az is 24 értékes bit):
.001010011110011001100110
Most a kerekítés ugyanezt adja, mert az elhagyott rész 0-val kezdődik, tehát kisebb 1/2-nél.
És akkor a végleges lebegőpontos kód:
Az előjel pozitív, tehát az előjelbit 0.
Az exponens 2. Az IBM-nél 7 bites exponens van 64-es eltolással, tehát a kód 64+2=66
Tehát az egész kód:
0-1000010-001010011110011001100110
Csoportosítva 4-esével:
0100-0010-0010-1001-1110-0110-0110-0110
Hexadecimálisan 4229e666
---
Hasonlóképpen konvertálhatod a 33.5-öt meg a 75.4-et is, ugye menni fog?
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!