Kezdőoldal » Tudományok » Természettudományok » Valaki segítene megoldani ezt...

Valaki segítene megoldani ezt a feladatot? (elektronika hardware alap)

Figyelt kérdés

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!


2012. jan. 14. 01:03
 1/3 bongolo ***** válasza:

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...

2012. jan. 15. 18:35
Hasznos számodra ez a válasz?
 2/3 bongolo ***** válasza:

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?

2012. jan. 15. 18:59
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
nagyon köszönöm
2012. jan. 15. 19:57

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!