8-bitowa reprezentacja zmiennoprzecinkowa

Studiuję nad przedstawieniem liczb ułamkowych jako wartości zmiennoprzecinkowych. Będzie to reprezentacja 8-bitowa. Gdzieś w tekście jest powiedziane, że:

8-bitowa reprezentacja zmiennoprzecinkowa

„Używamy pierwszego bitu do reprezentacji znaku (1 dla wartości ujemnych, 0 dla wartości dodatnich), następne cztery bity dla sumy 7 i rzeczywisty wykładnik (dodajemy 7, aby uwzględnić ujemne wykładniki), i ostatnie trzy bity dla „części ułamkowej mantysy”

Teraz pytanie to: Dlaczego „7” – a nie inną wartość – należy dodać do rzeczywistego wykładnika?

Komentarze

  • Witamy w CS.SE! Tekst w nawiasach podpowiada dlaczego. Nawiasem mówiąc, jeśli nie ' nie rozumiesz wyjaśnienia w jednym tekście, ' często pomaga znaleźć inne wyjaśnienie tematu . Istnieje wiele zasobów dotyczących zmiennoprzecinkowych.
  • Dlaczego więc należy dodać 7?
  • Jeśli ' zrozumiałeś odpowiedź na swoje pierwsze pytanie, zachęcam do edycji swojego posta, aby pokazać, co rozumiesz.

Odpowiedz

4 bity, które możesz reprezentować 16 różnych wartości: 0,1, …, 15. Jeśli chcesz zezwolić na ujemne wykładniki, warto przyjąć (w przybliżeniu) połowę możliwych wartości jako ujemny wykładnik. Dodając 7 do wykładnika, mapujesz wartości -7, -6, …, 0,1, …, 8 do reprezentowalnego zakresu. Możesz również sprawdzić uzupełnienia do dwóch .

Komentarze

  • Zatem dodanie 7, map -7, -6, …, – 1 do odpowiadających im wartości dodatnich i dodanie wartości większej niż 7 skutkuje wartością poza zakresem, która jest niepoprawna. Z tego samego powodu dodanie mniej niż 7 do wykładnika nie ' nie rozwiązuje problemu. Dzięki, ' mam to, czego szukałem.
  • Dodanie różnych liczb zmienia, które ujemne i które dodatnie wykładniki są obsługiwane. To ' jest decyzją projektową. Może po prostu wsparcie -1 jest wystarczające dla twojej aplikacji.
  • Tak masz rację. To jest decyzja projektowa, którą instruktor zaimplementował za pomocą samouczka i nie jest ' ścisłym ograniczeniem.
  • Decyzja o użyciu przesunięcia zamiast 2 ' uzupełnieniem IIRC było zachowanie odwrotności najmniejszej wartości mniejszej niż największy va lue, tj. aby uniknąć przepełnienia. Innymi słowy, został starannie wybrany.
  • @KWillets: Przesunięcie pozwala również na przedstawienie zera jako zer i pozwala na użycie porównań całkowitych do porównywania liczb zmiennoprzecinkowych (z wyłączeniem bitu znaku)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *