Datentypen und explizite Typumwandlung in C++

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:

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.