Czytałem wiele odpowiedzi, ale żadna nie wydaje się poprawnie wyjaśniać, skąd pochodzi słowo podwójne . Pamiętam bardzo dobre wyjaśnienie, jakiego udzielił mi profesor Uniwersytetu, którego miałem kilka lat temu.
Przypominając styl odpowiedzi VonC, reprezentacja zmiennoprzecinkowa pojedynczej precyzji wykorzystuje słowo 32-bitowe.
- 1 bit na znak S
- 8 bitów na wykładnik „E”
- 24 bity na ułamek , zwany także mantysą lub współczynnikiem (chociaż reprezentowane są tylko 23). Nazwijmy to „M” (w przypadku mantysy wolę tę nazwę, ponieważ „ułamek” może być źle zrozumiany).
Reprezentacja:
S EEEEEEEE MMMMMMMMMMMMMMMMMMMMMMM
bits: 31 30 23 22 0
(Żeby zaznaczyć, znak jest ostatnim, a nie pierwszym).
Podwójna precyzja floating point reprezentacji używa słowa 64 bitów.
- 1 bit na znak S
- 11 bitów na wykładnik „E”
- 53 bity dla frakcji / mantysy / współczynnika (chociaż reprezentowane są tylko 52), `` M ''
Reprezentacja:
S EEEEEEEEEEE MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
bits: 63 62 52 51 0
Jak możesz zauważyć, napisałem, że mantysa ma w obu typach nieco więcej informacji w porównaniu z jej reprezentacją. W rzeczywistości mantysa jest liczbą reprezentowaną bez jej znaczenia 0
. Na przykład,
- 0,000124 staje się 0,124 × 10-3
- 237,141 staje się 0,237141 × 10 3
Oznacza to, że mantysa zawsze będzie w formie
0.α 1 α 2 ... α t x β str
gdzie β jest podstawą reprezentacji. Ale ponieważ ułamek jest liczbą binarną, α 1 będzie zawsze równy 1, więc ułamek można przepisać na 1.α 2 α 3 ... α t + 1 × 2 p, a początkowe 1 można założyć implicite, robiąc miejsce na dodatkowy bit (α t + 1 ).
Oczywiście prawdą jest, że podwójna liczba 32 to 64, ale nie od tego pochodzi to słowo.
Precyzja określa liczbę cyfr dziesiętnych, które są poprawne , czyli bez jakiegokolwiek błędu reprezentacji lub zbliżenia. Innymi słowy, wskazuje, ile cyfr dziesiętnych można bezpiecznie użyć.
Mając to na uwadze, łatwo oszacować liczbę cyfr dziesiętnych, których można bezpiecznie użyć:
- pojedyncza precyzja : log 10 (2 24 ), czyli około 7 ~ 8 cyfr dziesiętnych
- podwójna precyzja : log 10 (2 53 ), czyli około 15 ~ 16 cyfr dziesiętnych