logo

Różnica między rzutowaniem typów a konwersją typów

Dwa terminy odlewanie typu i konwersja typu są używane w programie do konwersji jednego typu danych na inny typ danych. Konwersja typu danych jest możliwa przez kompilator tylko wtedy, gdy są one ze sobą kompatybilne. Omówmy różnicę między rzutowaniem typów a konwersją typów w dowolnym języku programowania.

Co to jest rzutowanie typu?

Kiedy typ danych jest konwertowany na inny typ danych przez programistę lub użytkownika podczas pisania kodu programu w dowolnym języku programowania, mechanizm ten nazywany jest odlewanie typu . Programista używa go ręcznie do konwersji jednego typu danych na inny. Stosuje się go, jeśli chcemy zmienić docelowy typ danych na inny typ danych. Pamiętaj, że docelowy typ danych musi być mniejszy niż źródłowy typ danych. Dlatego nazywa się to również konwersją zawężającą.

Różnica między rzutowaniem typów a konwersją typów

Składnia:

 Destination_datatype = (target_datatype) variable; (data_type) it is known as casting operator 

Typ_danych docelowych: Jest to typ danych, w którym chcemy przekonwertować docelowy typ danych. Zmienna definiuje wartość, która ma zostać przeliczona w typie target_data. Rozumiemy koncepcję rzutowania typów na przykładzie.

Załóżmy, że chcemy przekonwertować plik platforma typ danych w wew typ danych. W tym przypadku docelowy typ danych jest mniejszy niż dane źródłowe, ponieważ rozmiar wew wynosi 2 bajty, a rozmiar pliku platforma typ danych to 4 bajty. A kiedy to zmienimy, wartość zmiennej float zostanie obcięta i zamieniona na zmienną całkowitą. Przesyłanie można przeprowadzić przy użyciu zgodnego i niekompatybilnego typu danych.

 float b = 3.0; int a = (int) b; // converting a float value into integer 

Przyjrzyjmy się rzutowaniu typów za pomocą programu w języku C.

AreaOfRectangle.c

 #include #include void main() { printf('
 Welcome to Javatpoint tutorials '); float x = 3.5, y = 4.5; // the size of float variable is 4 byte. int area; // the size of the int variable is 2 bytes. area = (int) x * y; // after conversion the product converts into integer printf('
 Area of a Rectangle is : %d', area); printf('
 Here, we convert float data type into the Int data type'); getch(); } 

Wyjście:

Różnica między rzutowaniem typów a konwersją typów

Co to jest konwersja typów?

Jeśli typ danych jest automatycznie konwertowany na inny typ danych w czasie kompilacji, nazywa się to konwersją typu. Konwersja jest wykonywana przez kompilator, jeśli oba typy danych są ze sobą kompatybilne. Pamiętaj, że docelowy typ danych nie powinien być mniejszy niż typ źródłowy. Znany jest również jako poszerzanie konwersja typu danych.

Różnica między rzutowaniem typów a konwersją typów

Rozumiemy konwersję typu na przykładzie.

Załóżmy, że mamy wew typ danych i chcesz go przekonwertować na a platforma typ danych. Są to typy danych kompatybilne ze sobą, ponieważ ich typy są numeryczne, a rozmiar int wynosi 2 bajty, czyli jest mniejszy niż typ danych float. Dlatego kompilator automatycznie konwertuje typy danych bez utraty lub obcięcia wartości.

 int a = 20; Float b; b = a; // Now the value of variable b is 20.000 /* It defines the conversion of int data type to float data type without losing the information. */ 

W powyższym przykładzie typ danych int jest konwertowany na typ zmiennoprzecinkowy, który ma większy rozmiar niż int, a co za tym idzie, poszerza źródłowy typ danych.

Rozumiemy konwersję typów za pomocą programu C.

 #include #include void main() { printf('
 Welcome to Javatpoint tutorials '); int x = 3, y = 4; // the size of int variable is 2 byte. float area; // the size of float variable is 4 bytes. area = x * y; /* It is a type conversion that automatically converted by the compiler at the compile time of a program. */ printf('
 Area of a Rectangle is : %f', area); printf('
 Here, we convert int data type to the float data type'); getch(); } 

Wyjście:

Różnica między rzutowaniem typów a konwersją typów

Różnica między rzutowaniem typów a konwersją typów

S.N. Typ Casting Konwersja typu
1 Rzutowanie typów to mechanizm, w którym jeden typ danych jest konwertowany przez programistę na inny typ danych za pomocą operatora rzutowania (). Konwersja typów umożliwia kompilatorowi konwersję jednego typu danych na inny typ danych w czasie kompilacji programu lub kodu.
2 Można go używać zarówno jako zgodny, jak i niezgodny typ danych. Konwersja typów jest używana tylko w przypadku zgodnych typów danych i dlatego nie wymaga żadnego operatora rzutowania.
3 Wymaga od programisty ręcznego rzutowania jednych danych na inny typ. Konwersja jednego typu danych na inny nie wymaga żadnej interwencji programisty, ponieważ kompilator automatycznie kompiluje go w czasie wykonywania programu.
4 Wykorzystuje się go podczas projektowania programu przez programistę. Jest używany lub ma miejsce w czasie kompilacji programu.
5 Podczas rzutowania jednego typu danych na inny docelowy typ danych musi być mniejszy niż dane źródłowe. Podczas konwersji jednego typu danych na inny typ docelowy powinien być większy niż źródłowy typ danych.
6 Nazywa się to również konwersją zawężającą, ponieważ jeden większy typ danych jest konwertowany na mniejszy typ danych. Nazywa się to również konwersją rozszerzającą, ponieważ jeden mniejszy typ danych jest konwertowany na większy typ danych.
7 Jest bardziej niezawodny i wydajny. Jest mniej wydajny i mniej niezawodny.
8 Istnieje możliwość utraty danych lub informacji podczas rzutowania typów. W przypadku konwersji typu mało prawdopodobne jest, aby dane zostały utracone podczas konwersji z małego na duży typ danych.
8
float b = 3.0; int a = (int) b
int x = 5, y = 2, c; float q = 12.5, p; p = q/x;