Grafico comparativo:
Base per il confronto | Digitare Casting | Digitare la conversione |
---|---|---|
Senso | Un tipo di dati è assegnato a un altro dall'utente, utilizzando un operatore di cast quindi viene chiamato "Casting di tipo". | La conversione di un tipo di dati in un altro automaticamente dal compilatore si chiama "Conversione del tipo". |
Applicato | Il cast di tipo può anche essere applicato a due tipi di dati "incompatibili". | La conversione del tipo può essere implementata solo quando due tipi di dati sono "compatibili". |
Operatore | Per trasmettere un tipo di dati a un altro, è richiesto un operatore di casting '()'. | Nessun operatore richiesto. |
Dimensione dei tipi di dati | Il tipo di destinazione può essere più piccolo del tipo di origine. | Qui il tipo di destinazione deve essere più grande del tipo di origine. |
implementato | È fatto durante la progettazione del programma. | È fatto esplicitamente durante la compilazione. |
Tipo di conversione | Riduzione della conversione. | Conversione allargamento |
Esempio | int a; byte b; ... ... b = (byte) a; | int a = 3; float b; b = a; // valore in b = 3.000. |
Definizione di tipo di fusione
Il casting di tipo può essere definito come, il casting di un tipo di dati in un altro tipo di dati, dal programmatore, al momento della progettazione del programma. Aa conversione automatica di un tipo di dati in un altro, non è possibile tutto il tempo. Potrebbe essere la condizione che il "tipo di destinazione" sia più piccolo del "tipo di sorgente", quindi il programmatore deve eseguire esplicitamente il tipo di dati più grande in un tipo di dati più piccolo usando l'operatore di fusione "()". Poiché il tipo di dati più grande viene modulato sul tipo di dati più piccolo, viene anche chiamato 'restringing conversion'.
destination_type = (target_type) variabile / valore // tipo di destinazione è un tipo in cui si desidera convertire il tipo di origine è sempre il tipo di destinazione.
Comprendiamolo con un esempio. Vuoi convertire il tipo di dati 'int' in 'byte', ora, dato che 'byte' è minore di 'int', la conversione di tipo non è consentita. Qui, abbiamo dovuto convertire implicitamente 'int' in 'byte' usando l'operatore di casting '()'. Dato che "int" è più grande di "byte", la dimensione di "int" sarà ridotta all'intervallo "int mod byte".
int a; byte b; ... ... b = (byte) a;
Quando il 'float' viene convertito in 'int', la dimensione di float viene troncata, poiché 'int' non memorizza il valore frazionario. Se la dimensione del tipo di destinazione è troppo piccola per adattarsi al tipo di origine, il tipo di origine è il tipo di destinazione modulo 'intervallo'. La fusione può essere applicata anche quando i tipi di dati sono compatibili, è buona norma utilizzare la trasmissione dei tipi ovunque sia necessaria la conversione dei tipi.
Definizione di conversione di tipo
La conversione del tipo è la conversione automatica di un tipo di dati in un altro quando richiesto, fatto esplicitamente dal compilatore. Ma ci sono due condizioni da soddisfare prima della conversione del tipo.
- Il tipo di origine e destinazione deve essere compatibile.
- Il tipo di destinazione deve essere più grande del tipo di origine.
Queste due condizioni dovrebbero soddisfare per ottenere la conversione del tipo, e questo tipo di conversione è chiamato "conversione allargata", poiché un tipo più piccolo viene convertito in un tipo più grande, si verifica un ampliamento del tipo. Per questa conversione allargata, i tipi numerici come "int", "float" sono compatibili tra loro mentre i valori numerici per char e boolean o char per boolean non sono compatibili.
Questo esempio fornirà una visione migliore di questo
int a = 3; float b; b = a; // valore in b = 3.000.
Qui, 'int' viene convertito in 'float' che è più grande di 'int', quindi si verifica un ampliamento del tipo di sorgente. Qui, non è richiesto alcun operatore di casting in quanto il compilatore lo farà esplicitamente.
Differenze chiave tra tipo di fusione e conversione
- La differenza fondamentale che distingue il casting di tipo dalla conversione di tipo è che il casting di tipo è la conversione di un tipo in un altro, eseguita dal programmatore. D'altra parte, la conversione di tipo è la conversione di un tipo in un altro, fatta dal compilatore durante la compilazione.
- Il cast di tipo può essere applicato ai tipi di dati che potrebbero non essere compatibili tra loro, ma la conversione del tipo può essere applicata solo ai tipi di dati che sono compatibili tra loro.
- La conversione di un tipo in un altro in type casting richiede l'operatore di casting "()" mentre, la conversione di un tipo di dati in un altro nella conversione del tipo non richiede alcun operatore.
- Durante la conversione di un tipo di dati in un altro tipo, il tipo di destinazione può essere più grande o più piccolo del tipo di origine. D'altra parte, il tipo di destinazione deve essere più grande del tipo di origine nella conversione del tipo.
- La conversione di un tipo in un altro tipo avviene durante la codifica in type casting mentre, nella conversione del tipo, la conversione di un tipo in un altro avviene esplicitamente durante la compilazione.
- Il casting di tipo è chiamato conversione di restringimento perché qui il tipo di destinazione può essere più piccolo del tipo di origine mentre, la conversione di tipo è chiamata conversione di ampliamento perché qui il tipo di destinazione deve essere più grande del tipo di origine.
Conclusione:
Si può concludere che la conversione di tipo e il casting di tipo, entrambi eseguono il compito di convertire un tipo di dati in un altro, ma differiscono nel senso che il cast di tipo viene eseguito dal programmatore, utilizzando l'operatore di cast '()' e la conversione del tipo viene eseguita dal compilatore, e non usa alcun operatore.