In questo argomento discuteremo della conversione di un tipo di dati in un altro nel linguaggio di programmazione C++. La conversione del tipo è il processo che converte il tipo di dati predefinito di una variabile in un tipo di dati appropriato. L'idea principale alla base della conversione del tipo è convertire due diverse variabili di tipo di dati in un unico tipo di dati per risolvere facilmente espressioni matematiche e logiche senza alcuna perdita di dati.
Ad esempio, stiamo sommando due numeri, dove una variabile è di tipo int e un'altra di tipo float; dobbiamo convertire o convertire la variabile int in un float per renderli entrambi tipi di dati float per aggiungerli.
La conversione del tipo può essere eseguita in due modi in C++, uno è conversione implicita del tipo , e il secondo è conversione esplicita del tipo . Tali conversioni vengono eseguite dal compilatore stesso, chiamate conversione di tipo implicita o conversione automatica di tipo. La conversione, che viene eseguita dall'utente o richiede l'intervento dell'utente, è chiamata conversione del tipo esplicito o definito dall'utente. Parliamo della conversione di tipo implicita ed esplicita in C++.
Conversione implicita del tipo
La conversione di tipo implicita è il tipo di conversione eseguita automaticamente dal compilatore senza alcuno sforzo umano. Significa che una conversione implicita converte automaticamente un tipo di dati in un altro tipo in base ad alcune regole predefinite del compilatore C++. Pertanto, è anche noto come conversione automatica del tipo .
Per esempio:
int x = 20; short int y = 5; int z = x + y;
Nell'esempio precedente, ci sono due variabili di tipo dati diversi, x e y, dove x è un tipo int e y è un tipo di dati short int. E anche la variabile risultante z è un tipo intero che memorizza le variabili xey. Ma il compilatore C++ converte automaticamente il valore del tipo di dati di rango inferiore (short int) nel tipo più alto (int) prima di ottenere la somma di due numeri. Pertanto, evita la perdita di dati, l'overflow o la perdita di segno nella conversione di tipo implicita di C++.
strutture dati java
Ordine del typecast nella conversione implicita
Di seguito è riportato l'ordine corretto dei tipi di dati dal rango inferiore al rango superiore:
bool -> char -> short int -> int -> unsigned int -> long int -> unsigned long int -> long long int -> float -> double -> long double
Programma per convertire int in tipo float utilizzando la conversione di tipo implicita
Creiamo un programma per convertire tipi di dati di rango più piccolo in tipi più alti utilizzando la conversione di tipo implicita.
Programma1.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; }
Produzione
The value of num1 is: 25 The value of num2 is: 25
Programma per convertire il tipo di dati double in int utilizzando la conversione di tipo implicita
Creiamo un programma per convertire il tipo di dati superiore in un tipo inferiore utilizzando la conversione di tipo implicita.
Programma2.cpp
affettare l'array Java
#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; }
Produzione
The value of the int variable is: 15 The value of the double variable is: 15.25
Nel programma precedente, abbiamo dichiarato num come tipo intero e num2 come variabile di tipo dati double e quindi assegnato a num2 come 15.25. Successivamente, assegniamo il valore num2 alla variabile num utilizzando l'operatore di assegnazione. Pertanto, un compilatore C++ converte automaticamente il valore double data nel tipo intero prima di assegnarlo alla variabile num e stampa il valore troncato come 15.
Conversione di tipo esplicita
Conversioni che richiedono intervento dell'utente per cambiare il tipo di dati di una variabile in un'altra, viene chiamato conversione esplicita del tipo . In altre parole, una conversione esplicita consente al programmatore di modificare o convertire manualmente il tipo di dati da una variabile a un altro tipo. Quindi, è anche noto come typecasting. In genere, forziamo la conversione esplicita del tipo per convertire i dati da un tipo a un altro perché non segue la regola di conversione implicita.
La conversione esplicita del tipo si divide in due modi:
- Conversione esplicita utilizzando l'operatore cast
- Conversione esplicita utilizzando l'operatore di assegnazione
Programma per convertire il valore float nel tipo int utilizzando l'operatore cast
Operatore cast: Nel linguaggio C++, un operatore cast è un operatore unario che converte forzatamente un tipo in un altro tipo.
Java trasforma il carattere in una stringa
Consideriamo un esempio per convertire il tipo di dati float nel tipo int utilizzando l'operatore cast della conversione esplicita in linguaggio C++.
Programma3.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; }
Produzione
The value of x is: 6
Programma per convertire un tipo di dati in un altro utilizzando l'operatore di assegnazione
Consideriamo un esempio per convertire il tipo di dati di una variabile in un'altra utilizzando l'operatore di assegnazione nel programma C++.
Programma4.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; }
Produzione
The value of int num1 is: 25 The value of float num2 is: 25.0