Maximalwert einer Variablen
-
Hi,
gibt es einen Befehl um den Maximalwert einer Variable
(z.B eine Interger float oder double Variable) zu bekommen?Ich hätte also gerne sowas:
int x = max_integer_wert;
-
Im Header stdint.h müsste es entsprechende Makros geben. INTN_MAX etc.
MfG
-
Oder einfach als Übungsaufgabe nehmen!
-
Ich brauche dies für ein OpenCL Program, (hatte ich vergessen zu schreiben),
daher kann ich die stdint.h nicht verwenden. Und darauf verlassen, dass mein jetzt eventuell als "Übungsaufgabe" berechneter Wert später bei neuneren Grafikkarten immernoch verwendet wird geht leider auch nicht.Ich brauche also sowas:
cl_uint myCLint= MAX_CL_INT;
-
Diese Typen sind in OpenCL hart definiert und nicht so weich wie in C. In [1] werden die Typen, deren Größe und Darstellung definiert. Ein int ist demnach 32Bit breit, und 2er-Komplement dargestellt. Demnach sind die Grenzen minimal -2^31 und maximal 2^31-1.
[1] http://www.khronos.org/registry/cl/specs/opencl-1.1.pdf
edit: und mich würde nicht wundern wenn man in [1] nicht auch noch ein Makro/Konstante dafür finden würde.
-
Sonst stehen die Max-/Minimalwert auch in limits.h
-
Da es sich dem Namen nach um einen vorzeichenlosen Integertypen handelt, garantiert der Standard, dass
cl_uint myCLint = (cl_uint) -1;
den höchstmöglichen Wert liefert. Wenn sich in OpenCL ein entsprechendes Makro findet, ist es natürlich schöner, das zu benutzen; ansonsten muss es so aber überall funktionieren.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum C (C89 und C99) in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Da cl_uint anscheinend ein integraler Typ ist, kann man doch auch einfach std::numeric_limits<cl_uint>::max() aus <limits> nehmen?
EDIT: Ups, ein C'ler
-
wxSkip schrieb:
Da cl_uint anscheinend ein integraler Typ ist, kann man doch auch einfach std::numeric_limits<cl_uint>::max() aus <limits> nehmen?
EDIT: Ups, ein C'lerne, ein OpenCLer
-
Hallo MisterX,
Es gibt in OpenCL Makros zur Bestimmung der Variablegrenzen.
z.B.
INT_MAX oder INT_MIN
Hier ist ein Link zu der entsprechenden Seite:
http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/macroLimits.html
Ich hoffe Ihnen damit geholfen zu haben.
Mit freundlichen Gruessen,
YoshiCodex