logo

Tastați Conversie în C++

În acest subiect, vom discuta despre conversia unui tip de date în altul în limbajul de programare C++. Conversia tipului este procesul care convertește tipul de date predefinit al unei variabile într-un tip de date adecvat. Ideea principală din spatele conversiei de tip este de a converti două variabile de tip de date diferite într-un singur tip de date pentru a rezolva cu ușurință expresii matematice și logice, fără nicio pierdere de date.

Tastați Conversie în C++

De exemplu, adăugăm două numere, unde o variabilă este de tip int și alta de tip float; trebuie să convertim sau să tipărim variabila int într-un float pentru a le face ambele tipuri de date float pentru a le adăuga.

Conversia tipului se poate face în două moduri în C++, unul este conversie implicită de tip , iar al doilea este conversie explicită de tip . Aceste conversii sunt realizate de compilator însuși, numit tip implicit sau conversie automată de tip. Conversia, care este efectuată de utilizator sau necesită interferențe ale utilizatorului numită conversie explicită sau definită de utilizator. Să discutăm despre conversia tip implicit și explicit în C++.

Conversie implicită de tip

Conversia implicită de tip este tipul de conversie realizată automat de către compilator fără niciun efort uman. Înseamnă că o conversie implicită convertește automat un tip de date într-un alt tip pe baza unor reguli predefinite ale compilatorului C++. Prin urmare, este cunoscut și sub numele de conversie automată a tipului .

De exemplu:

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

În exemplul de mai sus, există două variabile de tip de date diferite, x și y, unde x este un tip int, iar y este de tip scurt de date int. Și variabila rezultată z este, de asemenea, un tip întreg care stochează variabilele x și y. Dar compilatorul C++ convertește automat valoarea de tip de date de rang inferior (short int) în tipul superior (int) înainte de a rezulta suma a două numere. Astfel, evită pierderea datelor, depășirea sau pierderea semnelor în conversia implicită a tipului C++.

Ordinea tiparului în conversie implicită

Următoarea este ordinea corectă a tipurilor de date de la rangul inferior la rangul superior:

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

Program pentru a converti int în tip float utilizând conversia implicită a tipului

Să creăm un program pentru a converti tipurile de date cu rang mai mic în tipuri mai mari utilizând conversia implicită a tipurilor.

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

Ieșire

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

Program pentru a converti tipul de date double în int folosind conversia implicită a tipului

Să creăm un program pentru a converti tipul de date mai mare în tipul mai mic utilizând conversia implicită.

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

Ieșire

structuri de date java
 The value of the int variable is: 15 The value of the double variable is: 15.25 

În programul de mai sus, am declarat num ca tip întreg și num2 ca variabilă de tip dublu de date și apoi am atribuit num2 ca 15.25. După aceasta, atribuim valoarea num2 variabilei num folosind operatorul de atribuire. Deci, un compilator C++ convertește automat valoarea datelor duble la tipul întreg înainte de a o atribui variabilei num și imprimă valoarea trunchiată ca 15.

Conversie explicită de tip

Conversii care necesită intervenția utilizatorului pentru a schimba tipul de date al unei variabile cu alta, se numește conversie explicită de tip . Cu alte cuvinte, o conversie explicită permite programatorului să modifice manual sau să trimită tipul de date de la o variabilă la alta. Prin urmare, este cunoscut și sub numele de tipar. În general, forțăm conversia explicită a tipului să convertească datele de la un tip la altul, deoarece nu respectă regula de conversie implicită.

Conversia explicită a tipului este împărțită în două moduri:

  1. Conversie explicită folosind operatorul de distribuție
  2. Conversie explicită folosind operatorul de atribuire

Program pentru a converti valoarea float în tip int folosind operatorul cast

Operator de distribuție: În limbajul C++, un operator cast este un operator unar care convertește forțat un tip în alt tip.

Să luăm în considerare un exemplu pentru a converti tipul de date float în tip int utilizând operatorul cast al conversiei explicite în limbajul 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; } 

Ieșire

 The value of x is: 6 

Program pentru a converti un tip de date în altul folosind operatorul de atribuire

Să luăm în considerare un exemplu pentru a converti tipul de date al unei variabile în alta folosind operatorul de atribuire din programul C++.

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

Ieșire

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