logo

Typkonvertierung in C++

In diesem Thema besprechen wir die Konvertierung eines Datentyps in einen anderen in der Programmiersprache C++. Typkonvertierung ist der Prozess, der den vordefinierten Datentyp einer Variablen in einen geeigneten Datentyp konvertiert. Die Hauptidee der Typkonvertierung besteht darin, zwei verschiedene Datentypvariablen in einen einzigen Datentyp umzuwandeln, um mathematische und logische Ausdrücke einfach und ohne Datenverlust zu lösen.

Typkonvertierung in C++

Zum Beispiel fügen wir zwei Zahlen hinzu, wobei eine Variable vom Typ int und die andere vom Typ float ist; Wir müssen die int-Variable in eine Float-Variable umwandeln oder typisieren, um sie beide zu Float-Datentypen zu machen und sie hinzuzufügen.

Die Typkonvertierung kann in C++ auf zwei Arten erfolgen: zum einen implizite Typkonvertierung , und der zweite ist explizite Typkonvertierung . Diese Konvertierungen werden vom Compiler selbst durchgeführt und werden als implizite Typkonvertierung oder automatische Typkonvertierung bezeichnet. Die Konvertierung, die vom Benutzer durchgeführt wird oder Benutzereingriffe erfordert, wird als explizite oder benutzerdefinierbare Typkonvertierung bezeichnet. Lassen Sie uns die implizite und explizite Typkonvertierung in C++ diskutieren.

Implizite Typkonvertierung

Die implizite Typkonvertierung ist die Art der Konvertierung, die der Compiler automatisch und ohne menschlichen Aufwand durchführt. Dies bedeutet, dass eine implizite Konvertierung automatisch einen Datentyp in einen anderen Typ konvertiert, basierend auf einigen vordefinierten Regeln des C++-Compilers. Daher ist es auch als bekannt automatische Typkonvertierung .

Zum Beispiel:

 int x = 20; short int y = 5; int z = x + y; 

Im obigen Beispiel gibt es zwei unterschiedliche Datentypvariablen, x und y, wobei x ein int-Typ und y ein kurzer int-Datentyp ist. Und die resultierende Variable z ist ebenfalls ein ganzzahliger Typ, der x- und y-Variablen speichert. Der C++-Compiler konvertiert jedoch automatisch den Wert des Datentyps mit niedrigerem Rang (short int) in einen Wert mit höherem Datentyp (int), bevor er die Summe zweier Zahlen ergibt. Dadurch werden Datenverlust, Überlauf oder Vorzeichenverlust bei der impliziten Typkonvertierung von C++ vermieden.

Reihenfolge der Typumwandlung bei der impliziten Konvertierung

Im Folgenden finden Sie die richtige Reihenfolge der Datentypen von niedrigerem Rang zu höherem Rang:

 bool -> char -> short int -> int -> unsigned int -> long int -> unsigned long int -> long long int -> float -> double -> long double 

Programm zum Konvertieren von int in den Float-Typ mithilfe der impliziten Typkonvertierung

Lassen Sie uns ein Programm erstellen, um Datentypen mit kleinerem Rang mithilfe der impliziten Typkonvertierung in Typen mit höherem Rang umzuwandeln.

Programm1.cpp

 #include using namespace std; int main () { // assign the integer value int num1 = 25; // declare a float variable float num2; // convert int value into float variable using implicit conversion num2 = num1; cout << ' The value of num1 is: ' << num1 << endl; cout << ' The value of num2 is: ' << num2 << endl; return 0; } 

Ausgabe

 The value of num1 is: 25 The value of num2 is: 25 

Programm zur Konvertierung des Double-Datentyps in den Int-Datentyp mithilfe der impliziten Typkonvertierung

Lassen Sie uns ein Programm erstellen, um den höheren Datentyp mithilfe der impliziten Typkonvertierung in einen niedrigeren Typ umzuwandeln.

Programm2.cpp

 #include using namespace std; int main() { int num; // declare int type variable double num2 = 15.25; // declare and assign the double variable // use implicit type conversion to assign a double value to int variable num = num2; cout << ' The value of the int variable is: ' << num << endl; cout << ' The value of the double variable is: ' << num2 << endl; return 0; } 

Ausgabe

 The value of the int variable is: 15 The value of the double variable is: 15.25 

Im obigen Programm haben wir num als Integer-Typ und num2 als Variable vom doppelten Datentyp deklariert und dann num2 als 15,25 zugewiesen. Danach weisen wir mithilfe des Zuweisungsoperators den Wert „num2“ der Variablen „num“ zu. Daher konvertiert ein C++-Compiler den doppelten Datenwert automatisch in den Ganzzahltyp, bevor er ihn der Num-Variablen zuweist, und gibt den abgeschnittenen Wert als 15 aus.

Explizite Typkonvertierung

Konvertierungen, die erforderlich sind Benutzereingriff Das Ändern des Datentyps einer Variablen in eine andere wird als „“ bezeichnet explizite Typkonvertierung . Mit anderen Worten: Eine explizite Konvertierung ermöglicht es dem Programmierer, den Datentyp manuell von einer Variablen in einen anderen Typ zu ändern oder umzuwandeln. Daher wird es auch als Typecasting bezeichnet. Im Allgemeinen erzwingen wir die explizite Typkonvertierung, um Daten von einem Typ in einen anderen zu konvertieren, da sie nicht der impliziten Konvertierungsregel folgt.

Die explizite Typkonvertierung ist in zwei Arten unterteilt:

  1. Explizite Konvertierung mit dem Cast-Operator
  2. Explizite Konvertierung mithilfe des Zuweisungsoperators

Programm zum Konvertieren von Float-Werten in den Typ „int“ mithilfe des Cast-Operators

Besetzungsbetreiber: In der C++-Sprache ist ein Umwandlungsoperator ein unärer Operator, der einen Typ zwangsweise in einen anderen Typ konvertiert.

Betrachten wir ein Beispiel für die Konvertierung des Datentyps float in den Typ int mithilfe des Cast-Operators der expliziten Konvertierung in der Sprache C++.

Program3.cpp

 #include using namespace std; int main () { float f2 = 6.7; // use cast operator to convert data from one type to another int x = static_cast (f2); cout << ' The value of x is: ' << x; return 0; } 

Ausgabe

 The value of x is: 6 

Programm zum Konvertieren eines Datentyps in einen anderen mithilfe des Zuweisungsoperators

Betrachten wir ein Beispiel für die Konvertierung des Datentyps einer Variablen in eine andere mithilfe des Zuweisungsoperators im C++-Programm.

Programm4.cpp

 #include using namespace std; int main () { // declare a float variable float num2; // initialize an int variable int num1 = 25; // convert data type from int to float num2 = (float) num1; cout << ' The value of int num1 is: ' << num1 << endl; cout << ' The value of float num2 is: ' << num2 << endl; return 0; } 

Ausgabe

 The value of int num1 is: 25 The value of float num2 is: 25.0