logo

Zadajte konverziu v C++

V tejto téme sa budeme zaoberať konverziou jedného dátového typu na iný v programovacom jazyku C++. Konverzia typu je proces, ktorý konvertuje preddefinovaný typ údajov jednej premennej na vhodný typ údajov. Hlavnou myšlienkou konverzie typu je konvertovať dve rôzne premenné typu údajov do jedného typu údajov, aby sa dali jednoducho vyriešiť matematické a logické výrazy bez straty údajov.

Zadajte konverziu v C++

Napríklad pridávame dve čísla, pričom jedna premenná je typu int a druhá typu float; musíme skonvertovať alebo pretypovať premennú int na float, aby boli oba typy float, aby sme ich mohli pridať.

Konverziu typov možno v C++ vykonať dvoma spôsobmi, jedným je implicitná konverzia typu , a druhý je explicitná konverzia typu . Tieto konverzie vykonáva samotný kompilátor, nazývaný implicitný typ alebo automatická konverzia typu. Konverzia, ktorú vykonáva používateľ alebo vyžaduje zásahy používateľa, nazývaná explicitná alebo používateľsky definovaná konverzia typu. Poďme diskutovať o implicitnej a explicitnej konverzii typov v C++.

Konverzia implicitného typu

Konverzia implicitného typu je typ konverzie, ktorú automaticky vykoná kompilátor bez akéhokoľvek ľudského úsilia. To znamená, že implicitná konverzia automaticky konvertuje jeden typ údajov na iný typ na základe niektorých preddefinovaných pravidiel kompilátora C++. Preto je tiež známy ako automatická konverzia typu .

Napríklad:

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

Vo vyššie uvedenom príklade existujú dve rôzne premenné typu údajov, x a y, kde x je typ int a y je krátky typ údajov int. A výsledná premenná z je tiež celočíselný typ, ktorý ukladá premenné x a y. Kompilátor C++ však automaticky konvertuje nižšiu hodnotu typu údajov (short int) na vyššiu hodnotu typu (int) predtým, ako vznikne súčet dvoch čísel. Vyhne sa tak strate dát, pretečeniu alebo strate znamienka pri implicitnej konverzii typu C++.

Poradie pretypovania v implicitnej konverzii

Nasleduje správne poradie typov údajov od nižšej hodnosti po vyššiu hodnosť:

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

Program na konverziu typu int na typ float pomocou implicitnej konverzie typu

Vytvorme program na konverziu menších dátových typov na vyššie typy pomocou implicitnej konverzie typov.

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

Výkon

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

Program na konverziu dátového typu double na int pomocou implicitnej konverzie typu

Vytvorme program na konverziu vyššieho dátového typu na nižší typ pomocou implicitnej konverzie typu.

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

Výkon

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

Vo vyššie uvedenom programe sme deklarovali num ako celočíselný typ a num2 ako premennú typu double a potom sme priradili num2 ako 15.25. Potom priradíme hodnotu num2 premennej num pomocou operátora priradenia. Kompilátor C++ teda automaticky skonvertuje hodnotu double na celočíselný typ pred jej priradením k premennej num a vytlačí hodnotu skrátenia ako 15.

Explicitná konverzia typu

Konverzie, ktoré vyžadujú zásah používateľa na zmenu typu údajov jednej premennej na inú, sa nazýva explicitná konverzia typu . Inými slovami, explicitná konverzia umožňuje programátorovi manuálne zmeniť alebo pretypovať typ údajov z jednej premennej na iný typ. Preto je tiež známy ako typové obsadenie. Vo všeobecnosti vynucujeme konverziu explicitného typu na konverziu údajov z jedného typu na druhý, pretože nedodržiava implicitné pravidlo konverzie.

Konverzia explicitného typu je rozdelená na dva spôsoby:

  1. Explicitná konverzia pomocou operátora cast
  2. Explicitná konverzia pomocou operátora priradenia

Program na prevod hodnoty float na typ int pomocou operátora cast

Operátor obsadenia: V jazyku C++ je operátor cast unárny operátor, ktorý násilne konvertuje jeden typ na iný typ.

Zoberme si príklad na konverziu dátového typu float na typ int pomocou operátora cast explicitnej konverzie v jazyku 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; } 

Výkon

dereferenčný ukazovateľ
 The value of x is: 6 

Program na konverziu jedného dátového typu na iný pomocou operátora priradenia

Zoberme si príklad na konverziu dátového typu jednej premennej na inú pomocou operátora priradenia v programe 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; } 

Výkon

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