W tym temacie omówimy konwersję jednego typu danych na inny w języku programowania C++. Konwersja typów to proces, który konwertuje predefiniowany typ danych jednej zmiennej na odpowiedni typ danych. Główną ideą konwersji typów jest konwersja dwóch różnych zmiennych typu danych na jeden typ danych, aby łatwo rozwiązywać wyrażenia matematyczne i logiczne bez utraty danych.
Na przykład dodajemy dwie liczby, gdzie jedna zmienna jest typu int, a druga typu float; musimy przekonwertować lub wpisać zmienną int na zmiennoprzecinkową, aby oba typy danych były zmiennoprzecinkowe i można je dodać.
Konwersję typów można przeprowadzić w C++ na dwa sposoby, jednym jest niejawna konwersja typów , a drugie jest jawna konwersja typu . Konwersje te są wykonywane przez sam kompilator i nazywane są typem ukrytym lub automatyczną konwersją typu. Konwersja wykonywana przez użytkownika lub wymagająca ingerencji użytkownika, nazywana konwersją typu jawnego lub definiowanego przez użytkownika. Omówmy niejawną i jawną konwersję typów w C++.
Niejawna konwersja typów
Niejawna konwersja typów to typ konwersji wykonywany automatycznie przez kompilator bez żadnego wysiłku ludzkiego. Oznacza to, że niejawna konwersja automatycznie konwertuje jeden typ danych na inny typ w oparciu o pewne predefiniowane reguły kompilatora C++. Dlatego jest również znany jako automatyczna konwersja typów .
Na przykład:
int x = 20; short int y = 5; int z = x + y;
W powyższym przykładzie istnieją dwie różne zmienne typu danych, x i y, gdzie x jest typem danych int, a y jest typem danych short int. Wynikowa zmienna z jest również typem całkowitym, w którym przechowywane są zmienne x i y. Ale kompilator C++ automatycznie konwertuje wartość typu danych niższej rangi (short int) na wyższy typ (int), zanim otrzyma sumę dwóch liczb. W ten sposób unika się utraty danych, przepełnienia lub utraty znaku w niejawnej konwersji typu C++.
Kolejność rzutowania w konwersji niejawnej
Poniżej znajduje się prawidłowa kolejność typów danych od rangi niższej do wyższej:
bool -> char -> short int -> int -> unsigned int -> long int -> unsigned long int -> long long int -> float -> double -> long double
Program do konwersji typu in na float przy użyciu niejawnej konwersji typu
Stwórzmy program do konwersji typów danych o niższej randze na typy o wyższej randze przy użyciu niejawnej konwersji typów.
tekst zawijania css
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; }
Wyjście
The value of num1 is: 25 The value of num2 is: 25
Program do konwersji typu danych double na int przy użyciu niejawnej konwersji typu
Stwórzmy program konwertujący wyższy typ danych na niższy typ danych przy użyciu niejawnej konwersji typów.
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; }
Wyjście
The value of the int variable is: 15 The value of the double variable is: 15.25
W powyższym programie zadeklarowaliśmy num jako typ całkowity i num2 jako zmienną typu double, a następnie przypisaliśmy num2 jako 15,25. Następnie przypisujemy wartość num2 do zmiennej num za pomocą operatora przypisania. Zatem kompilator C++ automatycznie konwertuje podwójną wartość danych na typ całkowity przed przypisaniem jej do zmiennej num i drukuje wartość obciętą jako 15.
Jawna konwersja typu
Konwersje, które wymagają interwencja użytkownika zmiana typu danych jednej zmiennej na inną, nazywa się jawna konwersja typu . Innymi słowy, jawna konwersja umożliwia programiście ręczną zmianę lub rzutowanie typu danych z jednej zmiennej na inny typ. Dlatego nazywa się to także typecastingiem. Ogólnie rzecz biorąc, wymuszamy konwersję typu jawnego w celu konwersji danych z jednego typu na inny, ponieważ nie jest ona zgodna z regułą konwersji niejawnej.
Jawna konwersja typu jest podzielona na dwa sposoby:
- Jawna konwersja przy użyciu operatora rzutowania
- Jawna konwersja przy użyciu operatora przypisania
Program konwertujący wartość zmiennoprzecinkową na typ int za pomocą operatora rzutowania
Operator obsady: W języku C++ operator rzutowania to operator jednoargumentowy, który wymusza konwersję jednego typu na inny.
Rozważmy przykład konwersji typu danych float na typ int przy użyciu operatora rzutowania jawnej konwersji w języku 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; }
Wyjście
The value of x is: 6
Program konwertujący jeden typ danych na inny za pomocą operatora przypisania
Rozważmy przykład konwersji typu danych jednej zmiennej na inną za pomocą operatora przypisania w programie 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; }
Wyjście
The value of int num1 is: 25 The value of float num2 is: 25.0