C++ ist eine statisch typisierte Programmiersprache. Das bedeutet, dass – anders als bei der dynamisch typisierten Sprache JavaScript – der Datentyp vor dem Variablennamen notiert werden muss. Das Angebot an Datentypen ist in C++ mannigfaltig – eine Auswahl:
- bool für Wahrheitswerte (false / true)
- char für EIN alphanumerisches Zeichen
- short int, unsigned short int, int, unsigned int, für ganze Zahlen
- float für Fließkommazahlen
- double für Fließkommazahlen mit doppelter Genauigkeit
Wertebereiche
Mit den unterschiedlichen Datentypen verbinden sich unterschiedliche Wertebereiche:
Datentyp | Speicherbedarf | Wertebereich |
---|---|---|
bool | 1 Byte (8 Bit) | true (wahr) oder false (falsch) |
char | 1 Byte | -128 bis +127 bzw. 0 bis 255 |
unsigned char | 1 Byte | 0 bis 255 |
short int | 2 Byte | -32768 bis +32767 |
unsigned short int | 2 Byte | 0 bis 65535 |
int | 4 Byte | -2147483648 bis +2147483647 |
unsigned int | 4 Byte | 0 bis 4294967295 |
Die Datentypen float, double und long double speichern Fließkommazahlen und bieten unterschiedliche Genauigkeiten:
Datentyp | Speicherbedarf | Genauigkeit |
---|---|---|
float | 4 Byte | 6 Nachkommastellen |
double | 8 Byte | 12 Nachkommastellen |
long double | 10 Byte | 18 Nachkommastellen |
Explizite Typumwandlung: casting
Jede Variable ist in C++ einem bestimmten Datentyp fest zugeordnet. Mitunter ist es jedoch notwendig, einen Wert in einen anderen Datentyp zu konvertieren. Neben der vom Compiler vorgenommenen impliziten Umwandlung lassen sich Werte durch den Cast-Operator in andere Typen umwandeln. In der folgenden Anwendung wird zunächst das Zeichen „a“ in einer char-Variable gespeichert. Anschließend wird mit dem Cast-Operator der dezimale ASCII-Wert des Zeichens ausgegeben. Im letzten Schritt wird das Zeichen um drei Zeichen verschoben – so wird unter Verwendung der Cast-Operatoren aus einem „a“ mit wenigen Zeilen C++ Code ein „d“:
#include <iostream> using namespace std; void main() { char zeichen = 'a'; int asciiZahl = (int)zeichen; // Cast-Operator (int) cout << "Das Zeichen " << zeichen << " entspricht der Dezimalzahl " << asciiZahl << endl; char verschobenesZeichen = (char)asciiZahl + 3; cout << "Um drei Zeichen verschoben: " << verschobenesZeichen << endl; }
Nützliche Links:
- http://de.wikipedia.org/wiki/Statische_Typisierung
- de.wikibooks.org: Variablen, Konstanten und ihre Datentypen
- de.wikibooks.org: Typumwandlung
- http://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange
- Das Referenz- und Standardwerk von Bjarne Stroustrup bei amazon: Die C++-Programmiersprache: Aktuell zu C++11
Comments are closed, but trackbacks and pingbacks are open.