I det här ämnet kommer vi att diskutera omvandlingen av en datatyp till en annan i programmeringsspråket C++. Typkonvertering är den process som omvandlar den fördefinierade datatypen för en variabel till en lämplig datatyp. Huvudidén bakom typkonvertering är att konvertera två olika datatypvariabler till en enda datatyp för att enkelt lösa matematiska och logiska uttryck utan dataförlust.
Till exempel lägger vi till två tal, där en variabel är av int-typ och en annan av float-typ; vi måste konvertera eller typcasta variabeln int till en float för att göra dem båda flytande datatyper för att lägga till dem.
python chr-funktion
Typkonvertering kan göras på två sätt i C++, det ena är implicit typkonvertering , och den andra är explicit typkonvertering . Dessa konverteringar görs av kompilatorn själv, kallad implicit typ eller automatisk typkonvertering. Konverteringen, som görs av användaren eller kräver användarinterferenser som kallas explicit eller användardefinierad typkonvertering. Låt oss diskutera den implicita och explicita typkonverteringen i C++.
Implicit typkonvertering
Den implicita typkonverteringen är den typ av konvertering som görs automatiskt av kompilatorn utan någon mänsklig ansträngning. Det betyder att en implicit konvertering automatiskt konverterar en datatyp till en annan typ baserat på några fördefinierade regler för C++-kompilatorn. Därför är det också känt som automatisk typomvandling .
Till exempel:
int x = 20; short int y = 5; int z = x + y;
I exemplet ovan finns det två olika datatypvariabler, x och y, där x är en int-typ och y-en är av kort int-datatyp. Och den resulterande variabeln z är också en heltalstyp som lagrar x- och y-variabler. Men C++-kompilatorn konverterar automatiskt värdet av den lägre rankade datatypen (short int) till högre typ (int) innan summan av två tal blir resultatet. Således undviker den dataförlust, spill eller teckenförlust i implicit typkonvertering av C++.
Ordning av typcasten i implicit konvertering
Följande är den korrekta ordningen för datatyper från lägre rang till högre rang:
bool -> char -> short int -> int -> unsigned int -> long int -> unsigned long int -> long long int -> float -> double -> long double
Program för att konvertera int till float-typ med implicit typkonvertering
Låt oss skapa ett program för att konvertera mindre rangdatatyper till högre typer med hjälp av implicit typkonvertering.
Program1.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; }
Produktion
The value of num1 is: 25 The value of num2 is: 25
Program för att konvertera dubbel till int datatyp med implicit typkonvertering
Låt oss skapa ett program för att konvertera den högre datatypen till lägre typ med hjälp av implicit typkonvertering.
Program2.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; }
Produktion
The value of the int variable is: 15 The value of the double variable is: 15.25
I programmet ovan har vi deklarerat num som en heltalstyp och num2 som den dubbla datatypvariabeln och sedan tilldelat num2 som 15.25. Efter detta tilldelar vi num2-värdet till num-variabeln med hjälp av tilldelningsoperatorn. Så en C++-kompilator konverterar automatiskt det dubbla datavärdet till heltalstypen innan det tilldelar det till variabeln num och skriver ut trunkeringsvärdet som 15.
Explicit typkonvertering
Omvandlingar som kräver användarens ingripande att ändra datatypen för en variabel till en annan kallas för explicit typkonvertering . Med andra ord, en explicit konvertering tillåter programmeraren att manuellt ändra eller typcasta datatypen från en variabel till en annan typ. Därför är det också känt som typecasting. I allmänhet tvingar vi den explicita typens konvertering att konvertera data från en typ till en annan eftersom den inte följer den implicita konverteringsregeln.
Den explicita typkonverteringen är uppdelad på två sätt:
- Explicit konvertering med hjälp av cast-operatorn
- Explicit konvertering med tilldelningsoperatorn
Program för att konvertera flytvärde till int-typ med hjälp av cast-operatorn
Cast-operatör: I C++-språk är en cast-operator en unär operatör som med kraft omvandlar en typ till en annan typ.
Låt oss överväga ett exempel för att konvertera flytdatatypen till int-typ med hjälp av cast-operatorn för den explicita omvandlingen i språket 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; }
Produktion
The value of x is: 6
Program för att konvertera en datatyp till en annan med hjälp av tilldelningsoperatorn
Låt oss överväga ett exempel för att konvertera datatypen för en variabel till en annan med hjälp av tilldelningsoperatorn i C++-programmet.
fibonacci-serien i java
Program4.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; }
Produktion
The value of int num1 is: 25 The value of float num2 is: 25.0