🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #1275

Re: float

#1275
From: Achim Gratz
Date: Mon, 15 Jan 1996 13:51
51 lines
2693 bytes
>>>>> "Dietmar" == Dietmar Kuehl <kuehl@uzwil.informatik.uni-konstanz.de> writes:

    Dietmar> Hi, Mark Halter (st000217@hrz1.hrz.th-darmstadt.de)
    Dietmar> wrote: : kann mir jemand erklaeren, wie ein float-Zahl
    Dietmar> binaer dargestellt wird?
[...]
    Dietmar> Die Mantisse wird so gespeichert, dass die Zahl mit '0.'
    Dietmar> beginnt. Dann braucht man die Stelle vor dem Komma und
    Dietmar> die Position des Kommas nicht zu speichern. Insgesamt
    Dietmar> sieht die Zahl also etwa so aus:

Die korrekte Zuordnung sieht so aus (IEEE 754, single precision):

  31|30....23|22.....0
sign|exponent|mantissa

Von der Mantisse fehlt das hoechstwertige Bit, weil die Normierung
immer auf 0.5xxxxxx (dezimal) durchgefuehrt wird und dieses Bit (von
denormalisierten Zahlen mal abgesehen) immer 1 ist.  Die Nummern an
den Bitstellen entsprechen der logischen Wertigkeit, wie das dann im
Speicher angeordnet ist legt der IEEE-Standard _nicht_ fest.

    Dietmar> Wobei 's' das Bit ist, das das Vorzeichen darstellt (etwa
    Dietmar> '1' => positiv; '0' => negativ), 'm' fuer ein Bit der
    Dietmar> Mantisse steht und 'e' ein Bit des Exponenten ist. Die
    Dietmar> Anzahl der jeweiligen Bits muesste auf ein 'float' auf
    Dietmar> einer Sparc-Station passen. Die Reihenfolge nicht
    Dietmar> unbedingt... (ich habe gerade nichts da, was die IEEE
    Dietmar> Definition enthaelt).

Von SunPro: ``FORTRAN77 Numerical Computation Guide'', Abschnitt IEEE
Arithmetik.

    Dietmar> In 'float.h' sind eine Reihe von Konstanten definiert,
    Dietmar> mittels denen man abschaetzen kann, wie ein 'float' (oder
    Dietmar> ein '[long] double') dargestellt ist.

Nach dem ANSI-C Standard sind das keine Konstanten, sondern rvalues
(werden zur Laufzeit berechnet).  Das hat schon einigen Leuten graue
Haare bereitet, denn theoretisch koennten sich diese jederzeit
aendern.



--
Achim Gratz

--+<[ It's the small pleasures that make life so miserable. ]>+--

E-Mail: gratz@ite.inf.tu-dresden.de
Phone:  +49 351 4575 - 325
Technical Details
Message-ID: <4ddm5t$nkb@ite123.inf.tu-dresden.de>
Path: arc1-ca.pugleaf.net!uni-erlangen.de!irz401!not-for-mail
References: <4dbfci$1dap@rs18.hrz.th-darmstadt.de> <30f9e131.0@news.uni-konstanz.de>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!uni-erlangen.de!irz401!not-for-mail
From: gratz@ite.inf.tu-dresden.de (Achim Gratz)
Newsgroups: de.comp.lang.c++
Subject: Re: float
Date: 15 Jan 1996 14:51:57 +0100
Organization: Dept. of Computer Science, TU Dresden, Germany
Message-ID: <4ddm5t$nkb@ite123.inf.tu-dresden.de>
References: <4dbfci$1dap@rs18.hrz.th-darmstadt.de> <30f9e131.0@news.uni-konstanz.de>
NNTP-Posting-Host: ite123.inf.tu-dresden.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
In-reply-to: kuehl@uzwil.informatik.uni-konstanz.de's message of 15 Jan 96 05:08:01 GMT