Ik ben aan het bestuderen hoe ik fractionele getallen weergeeft als drijvende-kommawaarden. Het wordt een 8-bits weergave. Ergens in de tekst wordt gezegd dat:
“We gebruiken de eerste bit om het teken weer te geven (1 voor negatief, 0 voor positief), de volgende vier bits voor de som van 7 en de werkelijke exponent (we voegen 7 toe om negatieve exponenten toe te staan), en de laatste drie bits voor het fractionele deel van de mantisse
Nu de vraag is: waarom “7” -en niet een andere waarde- moet worden toegevoegd aan de werkelijke exponent?
Reacties
- Welkom bij CS.SE! De tekst geeft aan waarom, tussen haakjes. Overigens, als u ' de uitleg in één tekst niet begrijpt, is het ' vaak handig om naar een andere uitleg van het onderwerp te zoeken . Er zijn veel bronnen over drijvende komma.
- Dus, waarom zou 7 moeten worden toegevoegd?
- Als u ' het antwoord op uw eerste vraag, ik moedig je aan om je bericht te bewerken om te laten zien wat je wel begrijpt.
Antwoord
Met 4 bits kunt u 16 verschillende waarden vertegenwoordigen: 0,1, …, 15. Als je negatieve exponenten wilt toestaan, is het logisch om (ongeveer) de helft van de mogelijke waarden te nemen om een negatieve exponent te betekenen. Door 7 toe te voegen aan de exponent, brengt u de waarden -7, -6, …, 0,1, …, 8 in kaart in het representatieve bereik. Misschien wilt u ook twee “complement opzoeken.
Opmerkingen
- Dus het optellen van 7, kaarten -7, -6, …, – 1 aan hun corresponderende positieve waarden en het toevoegen van een waarde van meer dan 7 resulteert in een waarde buiten het bereik die onjuist is. Om dezelfde reden, het toevoegen van minder dan 7 naar de exponent lost het probleem niet op '. Bedankt, ik ' heb wat ik zocht.
- Door verschillende getallen toe te voegen, verandert welke negatieve en welke positieve exponenten u ondersteunt. Het ' is een ontwerpbeslissing. Misschien is alleen ondersteuning van -1 voldoende voor uw toepassing.
- Ja , je hebt gelijk. Dit is een ontwerpbeslissing die de instructeur heeft geïmplementeerd via de tutorial en is geen ' een strikte beperking.
- De beslissing om een offset te gebruiken in plaats van 2 ' s complement IIRC was om de inverse van de kleinste waarde kleiner te houden dan de grootste va lue, dwz om overlopen te voorkomen. Het werd met andere woorden zorgvuldig gekozen.
- @KWillets: de offset maakt het ook mogelijk om nul weer te geven als nullen en maakt het mogelijk om integer-vergelijkingen te gebruiken voor het vergelijken van getallen met drijvende komma (exclusief het tekenbit)