8-bitars flytpunktsrepresentation

Jag studerar om att representera bråktal som flytpunktsvärden. Det kommer att bli en 8-bitarsrepresentation. Någonstans i texten sägs det att:

8-bitars representation av flytpunkt

”Vi använder den första biten för att representera tecknet (1 för negativt, 0 för positivt), de nästa fyra bitarna för summan av 7 och den faktiska exponenten (vi lägger till 7 för att möjliggöra negativa exponenter) och de sista tre bitarna för mantissas ”s bråkdel”

Nu är frågan är: Varför måste ”7” -och inte ett annat värde läggas till i själva exponenten?

Kommentarer

  • Välkommen till CS.SE! Texten antyder varför, inom parentes. För övrigt, om du inte ' inte förstår förklaringen i en text, är det ' ofta bra att söka efter en annan förklaring av ämnet . Det finns många resurser på flytande punkt.
  • Så varför ska 7 läggas till?
  • Om du ' har förstått svaret på din första frågan, jag uppmanar dig att redigera ditt inlägg för att visa vad du förstår.

Svar

Med 4 bitar kan du representera 16 olika värden: 0,1, …, 15. Om du vill tillåta negativa exponenter är det vettigt att ta (ungefär) hälften av de möjliga värdena för att betyda en negativ exponent. Genom att lägga till 7 i exponenten mappar du värdena -7, -6, …, 0,1, …, 8 till det representerbara området. Du kanske också vill slå upp två komplement .

Kommentarer

  • Så att lägga till 7, kartor -7, -6, …, – 1 till deras motsvarande positiva värden och lägga till ett värde mer än 7 resulterar i ett värde utanför området som är felaktigt. Av samma anledning lägger du till mindre än 7 till exponenten fixar inte ' problemet. Tack, jag ' har fått det jag letade efter.
  • Om du lägger till olika siffror ändras vilka negativa och vilka positiva exponenter du stöder. Det ' är ett designbeslut. Kanske är det bara att stödja -1 räcker för din ansökan.
  • Ja , du har rätt. Detta är ett designbeslut som instruktören har implementerat det genom självstudien och inte ' en strikt begränsning.
  • Beslutet att använda en förskjutning istället för 2 ' komplement IIRC var att hålla det inversa av det minsta värdet mindre än det största va lue, dvs för att undvika överflöd. Det valdes noggrant, med andra ord.
  • @KWillets: Offset låter också noll representeras som nollor och gör det möjligt att använda heltaljämförelser för att jämföra flytpunktsnummer (exklusive teckenbiten)

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *