logo

Pretvorba tipa u C++

U ovoj temi raspravljat ćemo o konverziji jedne vrste podataka u drugu u programskom jeziku C++. Pretvorba tipa je proces koji pretvara unaprijed definirani tip podataka jedne varijable u odgovarajući tip podataka. Glavna ideja pretvorbe tipa je pretvoriti dvije različite varijable tipa podataka u jedan tip podataka za jednostavno rješavanje matematičkih i logičkih izraza bez gubitka podataka.

Pretvorba tipa u C++

Na primjer, zbrajamo dva broja, gdje je jedna varijabla tipa int, a druga tipa float; moramo pretvoriti ili utipkati varijablu int u float kako bismo ih obje float tipove podataka dodali.

Pretvorba tipa može se izvršiti na dva načina u C++, jedan je implicitna konverzija tipa , a drugi je eksplicitna konverzija tipa . Te pretvorbe obavlja sam kompilator, što se naziva implicitna ili automatska pretvorba tipa. Pretvorba koju obavlja korisnik ili koja zahtijeva uplitanje korisnika naziva se eksplicitna ili korisnički definirana pretvorba tipa. Raspravljajmo o implicitnoj i eksplicitnoj pretvorbi tipa u C++.

Implicitna pretvorba tipa

Implicitna pretvorba tipa je vrsta pretvorbe koju automatski obavlja prevodilac bez ikakvog ljudskog napora. To znači da implicitna konverzija automatski pretvara jedan tip podataka u drugi tip na temelju nekih unaprijed definiranih pravila C++ prevoditelja. Stoga je također poznat kao automatska konverzija tipa .

'primov algoritam'

Na primjer:

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

U gornjem primjeru postoje dvije različite varijable tipa podataka, x i y, gdje je x tip int, a y je tip podataka short int. A rezultantna varijabla z također je cjelobrojnog tipa koja pohranjuje x i y varijable. Ali C++ prevodilac automatski pretvara vrijednost tipa podataka nižeg ranga (short int) u viši tip (int) prije nego što rezultira zbrojem dvaju brojeva. Stoga se izbjegava gubitak podataka, prekoračenje ili gubitak predznaka u implicitnoj pretvorbi tipa C++.

instalacija baklje

Redoslijed prikazivanja tipa u implicitnoj pretvorbi

Sljedeći je točan redoslijed tipova podataka od nižeg do višeg ranga:

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

Program za pretvaranje int u float tip koristeći implicitnu konverziju tipa

Kreirajmo program za pretvaranje tipova podataka nižeg ranga u tipove višeg tipa koristeći implicitnu konverziju tipa.

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

Izlaz

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

Program za pretvaranje tipa podataka double u int pomoću implicitne konverzije tipa

Kreirajmo program za pretvaranje višeg tipa podataka u niži tip koristeći implicitnu konverziju tipa.

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

Izlaz

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

U gornjem programu deklarirali smo num kao cjelobrojni tip i num2 kao varijablu dvostrukog tipa podataka i zatim dodijelili num2 kao 15.25. Nakon toga dodjeljujemo vrijednost num2 varijabli num pomoću operatora dodjele. Dakle, C++ prevodilac automatski pretvara dvostruku podatkovnu vrijednost u cijeli broj prije nego što je dodijeli varijabli num i ispiše skraćenu vrijednost kao 15.

višeredni komentar powershell

Eksplicitna konverzija tipa

Pretvorbe koje zahtijevaju intervencija korisnika za promjenu tipa podataka jedne varijable u drugu, naziva se eksplicitna konverzija tipa . Drugim riječima, eksplicitna konverzija omogućuje programeru da ručno promijeni ili tipizira tip podataka iz jedne varijable u drugu vrstu. Stoga je također poznat kao tipiziranje. Općenito, forsiramo eksplicitnu konverziju tipa za konverziju podataka iz jedne vrste u drugu jer ne slijedi pravilo implicitne konverzije.

Eksplicitna konverzija tipa podijeljena je na dva načina:

  1. Eksplicitna konverzija pomoću operatora cast
  2. Eksplicitna konverzija pomoću operatora dodjele

Program za pretvaranje float vrijednosti u int tip pomoću operatora cast

Cast operater: U jeziku C++, cast operator je unarni operator koji nasilno pretvara jedan tip u drugi tip.

Razmotrimo primjer pretvaranja tipa podataka float u tip int korištenjem cast operatora eksplicitne konverzije u jeziku 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; } 

Izlaz

sučelje u Javi
 The value of x is: 6 

Program za pretvaranje jedne vrste podataka u drugu pomoću operatora dodjele

Razmotrimo primjer pretvaranja tipa podataka jedne varijable u drugu pomoću operatora dodjele u C++ programu.

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

Izlaz

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