Διαφορά μεταξύ χύτευσης τύπου και μετατροπής τύπου

Συγγραφέας: Laura McKinney
Ημερομηνία Δημιουργίας: 1 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 4 Ενδέχεται 2024
Anonim
Τούρκος ειδικός προειδοποιεί τον Μητσοτάκη για τα Δωδεκάνησα - Ο ρόλος Άγκυρας στο Ουκρανικό
Βίντεο: Τούρκος ειδικός προειδοποιεί τον Μητσοτάκη για τα Δωδεκάνησα - Ο ρόλος Άγκυρας στο Ουκρανικό

Περιεχόμενο


Η βασική διαφορά μεταξύ της μετατροπής τύπου και της χύτευσης τύπων, δηλ. Η μετατροπή τύπου γίνεται "αυτόματα" από τον μεταγλωττιστή, ενώ η χύτευση τύπου πρέπει να γίνει "ρητά" από τον προγραμματιστή.

Οι δύο όροι "χύτευση τύπου" και "μετατροπή τύπου" εμφανίζονται όταν υπάρχει ανάγκη μετατροπής ενός τύπου δεδομένων σε άλλο. Όταν οι δύο τύποι είναι συμβατοί μεταξύ τους, τότε η μετατροπή ενός τύπου σε άλλο γίνεται αυτόματα από τον μεταγλωττιστή. Ας συζητήσουμε τη διαφορά τόσο της χύτευσης τύπου όσο και της μετατροπής με τη βοήθεια του πίνακα σύγκρισης.

  1. Συγκριτικό διάγραμμα
  2. Ορισμός
  3. Βασικές διαφορές
  4. συμπέρασμα

Συγκριτικό διάγραμμα:

Βάση σύγκρισηςΤύπος χύτευσηςΜετατροπή τύπου
ΕννοιαΈνας τύπος δεδομένων έχει εκχωρηθεί σε άλλο από τον χρήστη, χρησιμοποιώντας έναν χειριστή cast και στη συνέχεια καλείται "Casting Type".Η μετατροπή ενός τύπου δεδομένων σε άλλο αυτόματα από τον μεταγλωττιστή ονομάζεται "Μετατροπή τύπου".
ΕφαρμοσμένοςΗ χύτευση τύπου μπορεί επίσης να εφαρμοστεί σε δύο μη συμβατούς τύπους δεδομένων.Η μετατροπή τύπου μπορεί να εφαρμοστεί μόνο όταν δύο τύποι δεδομένων είναι συμβατοί.
ΧειριστήςΓια τη μεταβίβαση ενός τύπου δεδομένων σε άλλο, απαιτείται χειριστής χύτευσης ().Δεν απαιτείται χειριστής.
Μέγεθος Τύπων ΔεδομένωνΟ τύπος προορισμού μπορεί να είναι μικρότερος από τον τύπο πηγής.Εδώ ο τύπος προορισμού πρέπει να είναι μεγαλύτερος από τον τύπο προέλευσης.
ΕφαρμογήΑυτό γίνεται κατά το σχεδιασμό του προγράμματος.Αυτό γίνεται ρητά κατά τη σύνταξη.
Τύπος μετατροπής

Περιορισμός της μετατροπής.Διεύρυνση της μετατροπής.
Παράδειγμαint a;
byte b;
...
...
b = (byte) α.
int a = 3;
float b;
b = a; // αξία σε b = 3.000.


Ορισμός της χύτευσης τύπου

Χύτευση τύπου μπορεί να οριστεί ως χύτευση ενός τύπου δεδομένων σε άλλο τύπο δεδομένων από τον προγραμματιστή κατά τον σχεδιασμό του προγράμματος. Η αυτόματη μετατροπή ενός τύπου δεδομένων σε άλλο δεν είναι δυνατή συνεχώς. Μπορεί να είναι η προϋπόθεση ότι ο «τύπος προορισμού» είναι μικρότερος από τον «τύπο πηγής». Επομένως, ο προγραμματιστής πρέπει να μεταφέρει τον μεγαλύτερο τύπο δεδομένων ρητά σε μικρότερο τύπο δεδομένων χρησιμοποιώντας τον χειριστή χύτευσης '()'. Καθώς ο μεγαλύτερος τύπος δεδομένων είναι διαμορφωμένος στον μικρότερο τύπο δεδομένων, ονομάζεται επίσης 'μείωση της μετατροπής'.

Δήλωση:

destination_type = (target_type) μεταβλητή / τιμή // ο τύπος στόχου είναι ένας τύπος στον οποίο θέλετε να μετατρέψετε τον τύπο προέλευσης, είναι πάντα ο τύπος προορισμού.

Παράδειγμα

Ας το καταλάβουμε με ένα παράδειγμα. Θέλετε να μετατρέψετε τον τύπο δεδομένων 'int' σε 'byte'. Τώρα, καθώς το byte είναι μικρότερο από το int, δεν επιτρέπεται η μετατροπή τύπου. Εδώ, έπρεπε να μετατρέψουμε σιωπηρά το 'int' σε 'byte' χρησιμοποιώντας το χειριστή casting '()'. Δεδομένου ότι το 'int' είναι μεγαλύτερο από το 'byte', το μέγεθος του 'int' θα μειωθεί στο εύρος "int mod byte".


int a; byte b; ... ... b = (byte) a;

Όταν το 'float' μετατραπεί σε 'int', το μέγεθος του float παίρνει περικομμένο, καθώς το 'int' δεν αποθηκεύει την κλασματική τιμή. Εάν το μέγεθος του τύπου προορισμού είναι πολύ μικρό για να χωρέσει ο τύπος πηγής, ο τύπος πηγής είναι ο τύπος προορισμού modulo "range". Η χύτευση μπορεί επίσης να εφαρμοστεί όταν οι τύποι δεδομένων είναι συμβατοί. Είναι καλή πρακτική η χρήση χύτευσης τύπου όπου απαιτείται μετατροπή τύπου.

Ορισμός της μετατροπής τύπου

Μετατροπή τύπου είναι η αυτόματη μετατροπή ενός τύπου δεδομένων σε άλλο όποτε απαιτείται, γίνεται ρητά από τον μεταγλωττιστή. Αλλά υπάρχουν δύο προϋποθέσεις που πρέπει να πληρούνται πριν από την μετατροπή τύπου.

  • Ο τύπος πηγής και προορισμού πρέπει να είναι συμβατός.
  • Ο τύπος προορισμού πρέπει να είναι μεγαλύτερος από τον τύπο πηγής.

Αυτές οι δύο συνθήκες θα πρέπει να ικανοποιούν για να επιτευχθεί μετατροπή τύπου, και αυτό το είδος μετατροπής ονομάζεται 'διεύρυνση της μετατροπής', καθώς ένας μικρότερος τύπος μετατρέπεται σε μεγαλύτερο τύπο, εμφανίζεται διεύρυνση του τύπου. Για αυτή τη διευρυμένη μετατροπή, οι αριθμητικοί τύποι ως 'int', 'float' είναι συμβατοί μεταξύ τους ενώ ο αριθμητικός χαρακτήρας και το boolean ή το char στο boolean δεν είναι συμβατοί.

Παράδειγμα

Αυτό το παράδειγμα θα δώσει μια καλύτερη εικόνα αυτού

int a = 3; float b; b = a; // αξία σε b = 3.000.

Εδώ, το 'int' μετατρέπεται σε 'float' που είναι μεγαλύτερο από το 'int', έτσι εμφανίζεται η διεύρυνση του τύπου πηγής. Εδώ, δεν απαιτείται χειριστής χύτευσης, καθώς ο μεταγλωττιστής θα το κάνει ρητά.

  1. Η βασική διαφορά που διαφοροποιεί τη χύτευση τύπου από την μετατροπή τύπου είναι ότι η χύτευση τύπου είναι η μετατροπή ενός τύπου σε άλλο, που γίνεται από τον προγραμματιστή. Από την άλλη πλευρά, η μετατροπή τύπου είναι η μετατροπή ενός τύπου σε άλλο, που γίνεται από τον μεταγλωττιστή κατά τη σύνταξη.
  2. Η χύτευση τύπων μπορεί να εφαρμοστεί στους τύπους δεδομένων, οι οποίοι μπορεί να μην είναι συμβατοί μεταξύ τους. Αντιστρόφως, η μετατροπή τύπου μπορεί να εφαρμοστεί μόνο στα τύπους δεδομένων που είναι συμβατά μεταξύ τους.
  3. Η μετατροπή ενός τύπου σε άλλο σε χύτευση τύπου απαιτεί τον χειριστή χύτευσης "()", ενώ η μετατροπή ενός τύπου δεδομένων σε άλλο σε μετατροπή τύπου δεν απαιτεί κανέναν χειριστή.
  4. Κατά τη μετατροπή ενός τύπου δεδομένων σε άλλο στη χύτευση τύπου, ο τύπος προορισμού μπορεί να είναι μεγαλύτερος ή μικρότερος από τον τύπο πηγής. Αντιθέτως, ο τύπος προορισμού πρέπει να είναι μεγαλύτερος από τον τύπο πηγής στην μετατροπή τύπου.
  5. Η μετατροπή ενός τύπου σε άλλο τύπο γίνεται κατά την κωδικοποίηση σε χύτευση τύπου. Αντίθετα, σε μετατροπή τύπου, η μετατροπή ενός τύπου σε άλλο γίνεται ρητά κατά τη διάρκεια της σύνταξης.
  6. Η χύτευση τύπου ονομάζεται στενότητα μετατροπής, επειδή εδώ ο τύπος προορισμού μπορεί να είναι μικρότερος από τον τύπο πηγής. Αντίθετα, η μετατροπή τύπου καλείται διεύρυνση της μετατροπής, επειδή εδώ ο τύπος προορισμού πρέπει να είναι μεγαλύτερος από τον τύπο πηγής.

Συμπέρασμα:

Μπορούμε να συμπεράνουμε ότι η μετατροπή τύπου και η χύτευση τύπου, και οι δύο εκτελούν την εργασία της μετατροπής ενός τύπου δεδομένων σε άλλο, αλλά διαφέρουν με την έννοια ότι η χύτευση τύπων γίνεται από τον προγραμματιστή, χρησιμοποιώντας το cast operator () και η μετατροπή τύπου γίνεται από τον μεταγλωττιστή , και δεν χρησιμοποιεί κανένα φορέα εκμετάλλευσης.