Jeg studerer om å representere brøkstall som flytpunktsverdier. Det kommer til å bli en 8-bits representasjon. Et eller annet sted i teksten sies det at:
«Vi bruker den første biten til å representere tegnet (1 for negativ, 0 for positiv), de neste fire bitene for summen av 7 og den faktiske eksponenten (vi legger til 7 for å tillate negative eksponenter), og de tre siste bitene for mantissas «brøkdel»
Nå er spørsmålet er: Hvorfor må «7» – og ikke en annen verdi – legges til selve eksponenten?
Kommentarer
- Velkommen til CS.SE! Teksten antyder hvorfor, i parentes. Hvis du ikke ' ikke forstår forklaringen i en tekst, er det ' ofte nyttig å søke etter en annen forklaring på emnet . Det er mange ressurser på flytende punkt.
- Så hvorfor skulle 7 legges til?
- Hvis du ' har forstått svaret på første spørsmål, jeg oppfordrer deg til å redigere innlegget ditt for å vise hva du forstår.
Svar
Med 4 bits kan du representere 16 forskjellige verdier: 0,1, …, 15. Hvis du vil tillate negative eksponenter, er det fornuftig å ta (omtrent) halvparten av de mulige verdiene til å bety en negativ eksponent. Ved å legge 7 til eksponenten tilordner du verdiene -7, -6, …, 0,1, …, 8 til det representable området. Det kan også være lurt å slå opp to komplement .
Kommentarer
- Så å legge til 7, kart -7, -6, …, – 1 til deres tilsvarende positive verdier og legge til en verdi mer enn 7 resulterer i en verdi utenfor området som er feil. Av samme grunn legger du til mindre enn 7 til eksponenten løser ikke ' problemet. Takk, jeg ' har fått det jeg lette etter.
- Å legge til forskjellige tall endrer hvilke negative og hvilke positive eksponenter du støtter. Det ' er en designbeslutning. Kanskje bare å støtte -1 er nok for søknaden din.
- Ja , du har rett. Dette er en designbeslutning som instruktøren har implementert gjennom veiledningen og ikke er ' en streng begrensning.
- Beslutningen om å bruke en forskyvning i stedet for 2 ' s komplement IIRC var å holde det inverse av den minste verdien mindre enn den største va lue, dvs. for å unngå overløp. Det ble nøye valgt, med andre ord.
- @KWillets: Forskyvningen tillater også at null representeres som nuller, og gjør det mulig å bruke heltalssammenligninger for å sammenligne flytende tall (unntatt tegnbiten)