Jeg studerer om at repræsentere brøktal som flydende punktværdier. Det bliver en 8-bit repræsentation. Et eller andet sted i teksten siges det at:
“Vi bruger den første bit til at repræsentere tegnet (1 for negativ, 0 for positiv), de næste fire bits for summen af 7 og den faktiske eksponent (vi tilføjer 7 for at muliggøre negative eksponenter) og de sidste tre bits for mantissas “s brøkdel”
Nu spørgsmålet er: Hvorfor skal “7” -og ikke en anden værdi- føjes til den aktuelle eksponent?
Kommentarer
- Velkommen til CS.SE! Teksten antyder hvorfor i parentes. I øvrigt, hvis du ikke ' ikke forstår forklaringen i en tekst, er det ' ofte nyttigt at søge efter en anden forklaring på emnet . Der er mange ressourcer på flydende punkt.
- Så hvorfor skulle 7 tilføjes?
- Hvis du ' har forstået svaret på din første spørgsmål, jeg opfordrer dig til at redigere dit indlæg for at vise, hvad du forstår.
Svar
Med 4 bits, du kan repræsentere 16 forskellige værdier: 0,1, …, 15. Hvis du vil tillade negative eksponenter, er det fornuftigt at tage (ca.) halvdelen af de mulige værdier til at betyde en negativ eksponent. Ved at tilføje 7 til eksponenten kortlægger du værdierne -7, -6, …, 0,1, …, 8 til det repræsentative område. Du vil muligvis også slå to “komplement op.
Kommentarer
- Så at tilføje 7, kort -7, -6, …, – 1 til deres tilsvarende positive værdier og tilføje en værdi mere end 7 resulterer i en værdi uden for området, der er forkert. Af samme grund tilføjer mindre end 7 til eksponenten løser ' ikke problemet. Tak, jeg ' har fået det, jeg ledte efter.
- Tilføjelse af forskellige tal ændrer hvilke negative og hvilke positive eksponenter du støtter. Det ' en designbeslutning. Måske er det bare at støtte -1 er nok til din ansøgning.
- Ja , du har ret. Dette er en designbeslutning, som instruktøren har implementeret gennem tutorial og ikke er ' en streng begrænsning.
- Beslutningen om at bruge en forskydning i stedet for 2 ' s supplement IIRC var at holde det inverse af den mindste værdi mindre end den største va lue, dvs. for at undgå overløb. Det blev nøje valgt, med andre ord.
- @KWillets: Forskydningen tillader også, at nul repræsenteres som nuller og giver mulighed for at bruge heltalssammenligninger til sammenligning af flydende punktum (ekskl. Tegnbit)