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.
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:
- Eksplicitna konverzija pomoću operatora cast
- 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