logo

Typ Conversie in C++

In dit onderwerp bespreken we de conversie van het ene gegevenstype naar het andere in de programmeertaal C++. Typeconversie is het proces dat het vooraf gedefinieerde gegevenstype van één variabele omzet in een geschikt gegevenstype. Het belangrijkste idee achter typeconversie is om twee verschillende gegevenstypevariabelen om te zetten in één enkel gegevenstype om wiskundige en logische uitdrukkingen eenvoudig op te lossen zonder enig gegevensverlies.

Typ Conversie in C++

We voegen bijvoorbeeld twee getallen toe, waarbij de ene variabele van het int-type is en de andere van het float-type; we moeten de int-variabele converteren of typeren naar een float om ze beide datatypen te laten zweven om ze toe te voegen.

Typeconversie kan in C++ op twee manieren worden uitgevoerd, één is impliciete typeconversie , en de tweede is expliciete typeconversie . Deze conversies worden door de compiler zelf uitgevoerd, het impliciete type of automatische typeconversie genoemd. De conversie, die wordt uitgevoerd door de gebruiker of die tussenkomst van de gebruiker vereist, wordt de expliciete of door de gebruiker gedefinieerde typeconversie genoemd. Laten we de impliciete en expliciete typeconversie in C++ bespreken.

Impliciete typeconversie

De impliciete typeconversie is het type conversie dat automatisch door de compiler wordt uitgevoerd, zonder enige menselijke inspanning. Het betekent dat een impliciete conversie het ene gegevenstype automatisch omzet in een ander type op basis van een aantal vooraf gedefinieerde regels van de C++-compiler. Daarom wordt het ook wel de automatische typeconversie .

Bijvoorbeeld:

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

In het bovenstaande voorbeeld zijn er twee verschillende gegevenstypevariabelen, x en y, waarbij x een int-type is en y van het korte int-gegevenstype is. En de resulterende variabele z is ook een geheel getal dat x- en y-variabelen opslaat. Maar de C++-compiler converteert automatisch de lagere waarde van het gegevenstype (korte int) naar het hogere type (int) voordat de som van twee getallen ontstaat. Het vermijdt dus gegevensverlies, overflow of tekenverlies bij impliciete typeconversie van C++.

wat is alfabetnummer

Volgorde van de typecast bij impliciete conversie

Het volgende is de juiste volgorde van gegevenstypen van lagere rang naar hogere rang:

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

Programma om int naar float-type te converteren met behulp van impliciete typeconversie

Laten we een programma maken om kleinere ranggegevenstypen naar hogere typen te converteren met behulp van impliciete typeconversie.

Programma1.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; } 

Uitvoer

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

Programma om dubbel naar int-gegevenstype te converteren met behulp van impliciete typeconversie

Laten we een programma maken om het hogere gegevenstype naar een lager type te converteren met behulp van impliciete typeconversie.

Programma2.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; } 

Uitvoer

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

In het bovenstaande programma hebben we num gedeclareerd als een geheel getal en num2 als de dubbele gegevenstypevariabele en vervolgens num2 toegewezen als 15.25. Hierna wijzen we de num2-waarde toe aan de num-variabele met behulp van de toewijzingsoperator. Een C++-compiler converteert dus automatisch de dubbele gegevenswaarde naar het integer-type voordat deze wordt toegewezen aan de num-variabele en drukt de afgekapte waarde af als 15.

Expliciete typeconversie

Conversies die vereisen tussenkomst van de gebruiker om het gegevenstype van de ene variabele naar de andere te veranderen, heet de expliciete typeconversie . Met andere woorden: een expliciete conversie stelt de programmeur in staat het gegevenstype handmatig te wijzigen of te typeren van de ene variabele naar een ander type. Daarom wordt het ook wel typecasting genoemd. Over het algemeen forceren we de expliciete typeconversie om gegevens van het ene type naar het andere te converteren, omdat deze niet de impliciete conversieregel volgt.

De expliciete typeconversie is op twee manieren verdeeld:

Java-teken naar int
  1. Expliciete conversie met behulp van de cast-operator
  2. Expliciete conversie met behulp van de toewijzingsoperator

Programma om float-waarde om te zetten in int-type met behulp van de cast-operator

Cast-operator: In de C++-taal is een cast-operator een unaire operator die het ene type met kracht omzet in een ander type.

Laten we een voorbeeld bekijken om het float-gegevenstype naar het int-type te converteren met behulp van de cast-operator van de expliciete conversie in C++-taal.

Programma3.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; } 

Uitvoer

 The value of x is: 6 

Programma om het ene gegevenstype naar het andere te converteren met behulp van de toewijzingsoperator

Laten we een voorbeeld bekijken om het gegevenstype van de ene variabele naar de andere te converteren met behulp van de toewijzingsoperator in het C++-programma.

Programma4.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; } 

Uitvoer

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