inf abfangen

martinibook

martinibook

Aktives Mitglied
Thread Starter
Dabei seit
20.08.2005
Beiträge
8.730
Reaktionspunkte
350
Hallo,

Ich habe ein simples Programm gebaut, mit dem man die Zweierpotenzen ausrechnen kann. Da ich mit "long int" nur bis 2^30 komme, habe ich es nun mit "long double" ausprobiert.

Das klappt auch erheblich besser:

Code:
2^1022 = 44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304
2^1023 = 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608
2^1024 =          inf
2^1025 =          inf
2^1026 =          inf

Allerdings möchte ich, dass aufgehört wird, wenn das Ergebnis "inf" erreicht.

Code:
if (ergebnis != inf)

führt zu einem Fehler, dass "inf" noch nicht deklariert ist.

Wie kann ich das abfangen?

Martin
 
Es gibt für C die Header-Datei <limits.h>. Darin sind Konstanten wie z.B. LONG_MAX definiert: die maximale Zahle, die durch einen Long dargestellt werden kann. Vielleicht hilft dir das weiter.
Für float-Datentypen hab ich auch mal so was ähnliches gefunden.

Tobi
 
Für Fliesskommazahlen ist es <float.h>, die wichtigen Konstanten liest man am besten dort nach.
 
Zurück
Oben Unten