Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » unendlich

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
02.08.2003, 17:05 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Wie kann ich einer double variablen den werte plus bzw. minus unendlich zuweisen? Wenn ich mich nicht irre hat das format doch sowas vorgesehen oder?
kann man dann noch damit rechnen also bekommt der dann Null raus wenn ich durch undendlich teile?

Danke Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.08.2003, 19:50 Uhr
virtual
Sexiest Bit alive
(Operator)


Das ist Implementationsanhängig. Mit folgendem Programm bekommst Du es zB für long double herausbekommen und ggf ausgeben:

C++:
#include <iostream>
#include <limits>

int main()
{
    bool hasInfinity = std::numeric_limits<long double>::has_infinity;
    if (!hasInfinity)
    {
        std::cerr<<"long double besitzt keinen Wert für \"unendlich\""<<std::endl;
        return 1;
    }    
    long double inf = std::numeric_limits<long double>::infinity();
    std::cout<<"\"unendlich\" bei long double: "<<inf<<std::endl;
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 02.08.2003 um 19:51 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.08.2003, 19:53 Uhr
0xdeadbeef
Gott
(Operator)


@virtual: Warum lokale Variablen, wenn du sie eh nicht benutzt? Sinnvoller wäre m.E.

C++:
#include <iostream>
#include <limits>

int main()
{
    if(!std::numeric_limits<long double>::has_infinity)
    {
        std::cerr<<"long double besitzt keinen Wert für \"unendlich\""<<std::endl;
        return 1;
    }    
    std::cout<<"\"unendlich\" bei long double: "<<std::numeric_limits<long double>::infinity()<<std::endl;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 02.08.2003 um 19:55 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.08.2003, 19:58 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


danke für diese ausführliche Antwort.
Man kann also mit unendlich noch rechen 1/inf ist bei mir 0 so wie ich es haben wollte.

was ist den der maxwert von double oder anders gefragt.
Wieviel bit hat die mantisse und wieviel der exponent.
aus dem bauch heraus würde ich 24 bit für den exponent eins fürs vorzeichen und den rest für die mantisse. Ist das richtig?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.08.2003, 20:01 Uhr
0xdeadbeef
Gott
(Operator)


Plattformabhängig. Allerdings kommst du größenordnungsmäßig bei 32 bit eher auf 1 bit Vorzeichen, 7 bit Exponent, 24 Bit Mantisse.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.08.2003, 20:01 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ups ich dachte immer double hat meist 64 bit
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.08.2003, 22:15 Uhr
virtual
Sexiest Bit alive
(Operator)


@beefy
Lokale Varaiblen habe ich genommen, um es expliziter zu machen. Hat sonst keinen besonderen grund. Ist aber eben auch nicht problematisch. Ob es sinnvoller ist, auf die Variablen zu verzichten (zB auf Grund der von dir so geliebten Performance), wage ich zu bezweifeln, weil das ein guter Compiler für Dich weg optimiert. Bliebe noch die Frage nach der Lesbarkeit des Codes. Und da habe ich mich so ausgedrückt, wie es für mich gut lesbar ist.

@Heiko.
Auch solche Fragen nach min/max und Mantisse und Exponent lassen sich mit dem Template numeric_limits abfragen. Zu diesme Thema habe ich bereits schon mal was gepostet, ausserdem lohnt sich ein Blick in den entsprechenden Header.

edit: da war nach dem =" ein Return drin, das hat gestört
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 02.08.2003 um 23:16 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
02.08.2003, 22:18 Uhr
virtual
Sexiest Bit alive
(Operator)


Ist das wieder nur bei mir, daß der URL Tag nicht richtig tickt? - Ich glaube, die Sache lief mal runder.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
02.08.2003, 22:21 Uhr
Pablo
Supertux
(Operator)


Heißt das, dass man wirklich den Wert "unendlich" speichern kann? Aber das gibt nur bei Fließkommazahlen oder auch bei int und long?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
03.08.2003, 07:58 Uhr
virtual
Sexiest Bit alive
(Operator)


@pablo
Nein, nur bei Fließkommazahlen und da nur manchmal.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: