Premiär! Fyndchans i SweClockers Månadens Drop

Flyttal enligt standarden IEEE 754

Permalänk
Medlem

Flyttal enligt standarden IEEE 754

Jag behöver hjälp att få en sak förklarad för mig. Läser för närvarande min andra programmerings-kurs och vi håller bland annat på att lära oss om binära flyttal o.s.v. Nu är det så att vår föreläsare och de flesta handledare är under all kritik vad gäller pedagogik, därför undrar jag om någon vänlig och upplyst själ skulle vilja försöka förklara hur t.ex. denna uppgift ska lösas?:

2.2 Beräkna operation A+B. Svara med ett 16-bitars binär flyttal enligt bilden ovan och IEEE 754.
Flyttal A : 0 11010 1111100000 Flyttal B : 0 11000 1101100000
Formeln för att få ut det decimala värdet v ur ett flyttal:v=(-1) teckenbit x 2 exponent-15 x (1, mantissa)2
OBS: ofullständigt svar beaktas inte dvs tabeller och beräkningar som används för att nå svaret ska också finns i lösningen.

Permalänk
Moderator
Festpilot 2020, Antiallo

@foobaaar: Du får gärna beskriva vad det är du förstår/inte förstår och vill ha förklarat. Vi gör inte din skoluppgift åt dig.

Du har dock formeln i klartext så kan väl inte vara för krångligt om du bara nöter talet genom den?

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Datavetare

Formeln är lite otydligt, framförallt hur man går från bitrepresentation av mantissa till decimalform.

flyttal(S, E, M) = (-1)^S * 2^E * M

där S är värdet på teckenbiten, E är exponent subtraherat med 15 i ditt fall och M är

M = 1 + m1*2^-1 + m2*2^-2 + m3*2^-3 ... mN*2^-N

och m1, m2 etc representerar bitarna i mantissa, räknat från vänster (så m1 är mest signifikanta biten i mantissa).

Då borde det gå att lura ut vilka talen är! Framförallt när de står på formen

0-11010-1111100000

D.v.s. de är redan uppdelade i teckenbit, exponentrepresentation och mantissarepresentation.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk

Det som kan vara lite klurigt med flyttalsadditionen är att man först måste justera mantissan på det mindre talet så att talen har samma exponent innan man adderar dem. När talen har samma exponent är det bara att addera mantissorna som en vanlig heltalsaddition, typ. Vad borde man göra om man får carry?