logo

Conversió de tipus en C++

En aquest tema, parlarem de la conversió d'un tipus de dades a un altre en el llenguatge de programació C++. La conversió de tipus és el procés que converteix el tipus de dades predefinit d'una variable en un tipus de dades adequat. La idea principal de la conversió de tipus és convertir dues variables de tipus de dades diferents en un únic tipus de dades per resoldre fàcilment expressions matemàtiques i lògiques sense cap pèrdua de dades.

Conversió de tipus en C++

Per exemple, estem afegint dos nombres, on una variable és de tipus int i una altra de tipus float; hem de convertir o convertir la variable int en un float per fer que els dos tipus de dades float per afegir-los.

La conversió de tipus es pot fer de dues maneres en C++, una és conversió implícita de tipus , i el segon és conversió de tipus explícita . Aquestes conversions les fa el propi compilador, anomenat tipus implícit o conversió automàtica de tipus. La conversió, que la fa l'usuari o requereix interferències de l'usuari anomenada conversió de tipus explícita o definida per l'usuari. Parlem de la conversió de tipus implícita i explícita en C++.

Conversió de tipus implícita

La conversió de tipus implícita és el tipus de conversió realitzada automàticament pel compilador sense cap esforç humà. Significa que una conversió implícita converteix automàticament un tipus de dades en un altre tipus basant-se en algunes regles predefinides del compilador C++. Per tant, també es coneix com a conversió automàtica de tipus .

edat de shilpa shetty

Per exemple:

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

A l'exemple anterior, hi ha dues variables de tipus de dades diferents, x i y, on x és un tipus int i la y és de tipus int curt. I la variable resultant z també és un tipus enter que emmagatzema variables x i y. Però el compilador C++ converteix automàticament el valor del tipus de dades de rang inferior (short int) en un tipus superior (int) abans de donar com a resultat la suma de dos nombres. Així, evita la pèrdua de dades, el desbordament o la pèrdua de signes en la conversió implícita de tipus de C++.

fitxer csv llegir java

Ordre del typecast en conversió implícita

El següent és l'ordre correcte dels tipus de dades des de la classificació més baixa fins a la classificació més alta:

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

Programa per convertir int a tipus flotant mitjançant la conversió de tipus implícita

Creem un programa per convertir els tipus de dades de rang més petits en tipus més alts mitjançant la conversió de tipus implícita.

Programa 1.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; } 

Sortida

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

Programa per convertir el tipus de dades double a int mitjançant la conversió de tipus implícita

Creem un programa per convertir el tipus de dades més alt en un tipus inferior mitjançant la conversió de tipus implícita.

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

Sortida

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

Al programa anterior, hem declarat num com a tipus sencer i num2 com a variable de tipus de dades doble i després hem assignat num2 com a 15.25. Després d'això, assignem el valor num2 a la variable num mitjançant l'operador d'assignació. Per tant, un compilador C++ converteix automàticament el valor de les dades dobles al tipus enter abans d'assignar-lo a la variable num i imprimeix el valor de truncat com a 15.

convertint int a doble java

Conversió de tipus explícita

Conversions que requereixen intervenció de l'usuari per canviar el tipus de dades d'una variable a una altra, s'anomena conversió de tipus explícita . En altres paraules, una conversió explícita permet que el programador canviï manualment o escriviu el tipus de dades d'una variable a un altre tipus. Per tant, també es coneix com a tipografia. En general, obliguem la conversió de tipus explícita a convertir dades d'un tipus a un altre perquè no segueix la regla de conversió implícita.

La conversió de tipus explícita es divideix de dues maneres:

  1. Conversió explícita mitjançant l'operador d'emissió
  2. Conversió explícita mitjançant l'operador d'assignació

Programa per convertir el valor flotant en tipus int mitjançant l'operador cast

Operador d'emissió: En llenguatge C++, un operador de distribució és un operador unari que converteix de manera forçada un tipus en un altre.

Considerem un exemple per convertir el tipus de dades float en tipus int utilitzant l'operador cast de la conversió explícita en llenguatge C++.

Programa 3.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; } 

Sortida

com utilitzar mysql workbench
 The value of x is: 6 

Programa per convertir un tipus de dades en un altre mitjançant l'operador d'assignació

Considerem un exemple per convertir el tipus de dades d'una variable en una altra utilitzant l'operador d'assignació del programa C++.

Programa 4.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; } 

Sortida

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