Limit der Datentypen(int, char,float,...) ermitteln?
-
Hi!
Wir sollen die Anzahl der zu Verfügung stehenden Werte ermitteln.
Bsp: short [-32768,32767] <-- Wertebereich
Nun könnte ich natürlich mit einer For-Schleife hochzählen und den Wert bevor es ins Minus geht speichern, jedoch kann das bei long eine ganz nette Weile dauern.
Gibt es da einen einfacheren Weg?
Kann man das mit nur einem Befehl ausgeben?Außerdem ist mir noch nicht ganz klar, wie ich das bei einem char ermitteln soll (Anzahl bits)?
Kann mir jemand einen Tipp geben? Danke!
-
Es gibt auch noch einen "echte" C++-Weg, aber den kann ich mir nie merken, deshalb die C-Variante (funktioniert natürlich auch in C++):
#include <limits.h> cout << "Maximum von int: " << INT_MAX; // gibt auch: // INT_MIN, CHAR_MIN/MAX etc. ich geb nur noch die Typ-Vorsätze an // SCHAR, UCHAR, SHRT, USHRT, UINT, LONG, ULONG cout << "Anzahl der Bits in einem char: " << CHAR_BIT
die Maxima/Minima der floating-point-Typen finden sich in float.h:
FLT_MIN, FLT_MAX, DBL_MIN, DBL_MAX
-
Danke!
Ich wusste doch, da gibt es eine einfachere Methode.
-
Mist! Das funzt nicht.
Sagt immer, dass INT_MAX nicht deklariert ist.
Die #include <limits.h> hab ich, da müsste das doch drinnen sein
Hat noch jemand einen Rat?
-
Versuch mal die C++ Variante, Erklärung gibts hier
-
Passt schon. Habe den Fehler gefunden.
Wahrscheinlich der dümmste Fehler den man sich vorstellen kann.
Habe das Projekt gestartet, als ich noch nichts von der limit.h wusste und habe deswegen die Klasse selbst limit genannt.
Habe also nur meinen eigenen Header miteingebunden.Jetzt funktioniert ese aber, danke!