Studiez despre reprezentarea numerelor fracționare ca valori în virgulă mobilă. Va fi o reprezentare pe 8 biți. Undeva în text, se spune că:
„Folosim primul bit pentru a reprezenta semnul (1 pentru negativ, 0 pentru pozitiv), următorii patru biți pentru suma de 7 și exponentul real (adăugăm 7 pentru a permite exponenții negativi) și ultimii trei biți pentru „partea fracțională” a mantisei
Acum întrebarea este: De ce trebuie adăugat „7” -și nu o altă valoare- la exponentul real?
Comentarii
- Bine ați venit la CS.SE! Textul sugerează de ce, în paranteză. De altfel, dacă nu ' nu înțelegeți explicația dintr-un text, ' este de multe ori util să căutați o explicație diferită a subiectului . Există multe resurse în virgulă mobilă.
- Deci, de ce ar trebui adăugat 7?
- Dacă ' ați înțeles răspunsul la prima întrebare, vă încurajez să vă editați postarea pentru a arăta ceea ce înțelegeți.
Răspundeți
Cu 4 biți puteți reprezenta 16 valori diferite: 0,1, …, 15. Dacă doriți să permiteți exponenți negativi, este logic să luați (aproximativ) jumătate din valorile posibile pentru a însemna un exponent negativ. Adăugând 7 la exponent asociați valorile -7, -6, …, 0,1, …, 8 la intervalul reprezentabil. De asemenea, vă recomandăm să căutați două „complement .
Comentarii
- Deci, adăugând 7, hărți -7, -6, …, – 1 la valorile lor pozitive corespunzătoare și adăugând o valoare mai mare de 7 rezultă o valoare în afara intervalului care este incorectă. Din același motiv, adăugând mai puțin de 7 către exponent ' nu remediază problema. Mulțumesc, am ' am primit ceea ce căutam.
- Adăugarea diferitelor numere modifică ce exponenți negativi și ce exponenți pozitivi acceptați. Este ' o decizie de proiectare. Poate doar acceptarea -1 este suficientă pentru aplicația dvs.
- Da , aveți dreptate. Aceasta este o decizie de proiectare pe care instructorul a implementat-o prin intermediul tutorialului și nu este ' o constrângere strictă.
- Decizia de a utiliza un offset în loc de 2 ' complement IIRC a fost să păstreze inversul celei mai mici valori mai mic decât cel mai mare va lue, adică pentru a evita revărsările. A fost ales cu grijă, cu alte cuvinte.
- @KWillets: Offsetul permite, de asemenea, ca zero să fie reprezentat ca zerouri și permite utilizarea unor comparații întregi pentru a compara numerele în virgulă mobilă (cu excepția bitului de semn)