Servus,
1. es gibt (wie meine vorposter schon angedeutet haben) mehrere Datentypen, die allesamt im Wertebereich beschraenkt sind
2. die Wertebereiche haengen teilweise auch vom Compiler ab (du wirst wahrscheinlich einen 32Bit compiler haben)
3. Wertebereiche der Variablen mit einem 32Bit compiler:
[vorzeichenbehaftet]
char = 8 Bit = -128 .. 127
short = 16 Bit = -32768 .. 32767
int = 32 Bit = -2147483648 .. 2147483647
long = 32 Bit = identisch zu int 32 bit
[Gleitkomma, kodierung etwas schwieriger:
fuer den geneigten leser
IEEE Standard for Binary Floating Point Arithmetic (ANSI/IEEE Std 754-1985) ]
float = 32 Bit = 1.5E-45 .. 3.4E38 [7- 8 Stellen genauigkeit]
double = 64 Bit = 5.0E-324 .. 1.7E308 [15-16 Stellen genauigkeit]
long double = 80 Bit = 1.9E-4951 .. 1.1E4932 [19-20 Stellen genauigkeit]
[ohne vorzeichen, nur positive zahlen moeglich]
unsigned char = 8 Bit = 0 .. 2^8-1 (gesprochen: zwei hoch acht, weis nicht ob du Exponenten in Mathe schon hattest) = 0 .. 2*2*2*2*2*2*2*2 -1 = 0.. 255
unsigned short = 16 bit = 0 .. 2^16-1 = 0 .. 65535
unsigned int = 32 Bit = 0 .. 2^32-1 = 0 .. 4294967295
unsigned long = unsigned int
Man koennte jetzt noch eine formel fuer die notwendigen Bits angeben um eine Zahl zu kodieren das fuehrte aber zu weit.
Prinzipiell wuerde ich dir einfach zu viel ignoranz raten und einfach int zu verwenden, wenn du es nicht gerade mit grossen feldern zu tun hast. Bei Gleitkommazahlen einfach zu double.
Wenn du irgendwan weiter bist kriegst du ein Gefuehl dafuer was du brauchst bzw. weist es genau (was eher anzuraten ist).
Ein wichtiger Hinweis noch (was in machen buechern vergessen wird):
Bei verwendung von Gleitkommazahlen ist darauf zu achten das einige Zahlen nicht genau dargestellt werden koennen:
0.1 kann nicht genau dargestellt werden und ist eigentlich 0.099999999999
Warum ist das wichtig? Ganz einfach:
0.1 + 0.1 + 0.1 ist fuer den rechner UNGLEICH 0.3 weil er sich an der genaugikeitsgrenze verrechnet, 0.1 + 0.1 + 0.1 = 0.29999998 und 0.3 = 0.29999999!!!!!!!
Das kann bei Anfaengern zur Verzweiflung fuehren.
Weiterer hinweis
Falls du mal mit dem debugger in beruehrung kommst und auf Hexadezimalschreibweise umstellst wird bei vorzeichenbehafteten zahlen die -1 nicht mit 0x8001 (16Bit)dargestellt sondern im Sog. 2er Kompliment: 0xffff. Falls dir das nichts sagt, einfach wieder auf Dezimalanzeige umschalten. (die 2er Komplimentdarstellung wird auch manchmal nicht erwaehnt sondern nur behauptet das das vorderste bit fuer den vorzeichenwechsel verantwortlich ist, was zwar insofern stimmt nur die kodierung auf den anderen Bits auch anders ist...)
Und noch etwas (ich liebe die Aenderungsfunktion):
Kauf dir ein C ++ Grundlagenbuch, auch wenn das C++ fuer spieleprogrammierung mit den basics anfaengt (wie jedes verdammte c++ buch, was mich nervt weil ich dafuer immer extra bezahle). Ich hatte bisher zum anfangen immer ein Buch von "Markt + Technik" viele empfehlen auch O'Reilly aber fuer echte anfaenger weis ich nicht ob ich die auch selber empfehlen kann.
So ich hoffe das hat geholfen.