logo

Conversão de tipo em C++

Neste tópico, discutiremos a conversão de um tipo de dados em outro na linguagem de programação C++. A conversão de tipo é o processo que converte o tipo de dados predefinido de uma variável em um tipo de dados apropriado. A ideia principal por trás da conversão de tipo é converter duas variáveis ​​de tipo de dados diferentes em um único tipo de dados para resolver expressões matemáticas e lógicas facilmente, sem qualquer perda de dados.

Conversão de tipo em C++

Por exemplo, estamos somando dois números, onde uma variável é do tipo int e outra do tipo float; precisamos converter ou converter a variável int em um float para fazer com que ambos flutuem tipos de dados para adicioná-los.

A conversão de tipo pode ser feita de duas maneiras em C++, uma é conversão implícita de tipo , e o segundo é conversão de tipo explícita . Essas conversões são feitas pelo próprio compilador, chamadas de tipo implícito ou conversão automática de tipo. A conversão, que é feita pelo usuário ou requer interferências do usuário, é chamada de conversão explícita ou de tipo definido pelo usuário. Vamos discutir a conversão de tipo implícita e explícita em C++.

Conversão de tipo implícita

A conversão implícita de tipo é o tipo de conversão feita automaticamente pelo compilador sem nenhum esforço humano. Isso significa que uma conversão implícita converte automaticamente um tipo de dados em outro tipo com base em algumas regras predefinidas do compilador C++. Por isso, também é conhecido como conversão automática de tipo .

java faça enquanto

Por exemplo:

 int x = 20; short int y = 5; int z = x + y; 

No exemplo acima, existem duas variáveis ​​de tipo de dados diferentes, x e y, onde x é um tipo int e y é um tipo de dados int curto. E a variável resultante z também é um tipo inteiro que armazena variáveis ​​​​xey. Mas o compilador C++ converte automaticamente o valor do tipo de dados de classificação inferior (int curto) em um tipo superior (int) antes de resultar na soma de dois números. Assim, evita perda de dados, estouro ou perda de sinal na conversão implícita de tipo de C++.

int para char

Ordem do typecast na conversão implícita

A seguir está a ordem correta dos tipos de dados, da classificação inferior para a classificação superior:

 bool -> char -> short int -> int -> unsigned int -> long int -> unsigned long int -> long long int -> float -> double -> long double 

Programa para converter int em tipo float usando conversão implícita de tipo

Vamos criar um programa para converter tipos de dados de classificação menor em tipos superiores usando conversão implícita de tipo.

Programa1.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; } 

Saída

 The value of num1 is: 25 The value of num2 is: 25 

Programa para converter o tipo de dados double para int usando conversão implícita de tipo

Vamos criar um programa para converter o tipo de dados superior em tipo inferior usando conversão implícita de tipo.

Programa2.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; } 

Saída

 The value of the int variable is: 15 The value of the double variable is: 15.25 

No programa acima, declaramos num como um tipo inteiro e num2 como a variável de tipo de dados duplo e, em seguida, atribuímos num2 como 15,25. Depois disso, atribuímos o valor num2 à variável num usando o operador de atribuição. Portanto, um compilador C++ converte automaticamente o valor de dados duplo para o tipo inteiro antes de atribuí-lo à variável num e imprime o valor truncado como 15.

quantos 0 em um bilhão

Conversão de tipo explícito

Conversões que exigem intervenção do usuário para alterar o tipo de dados de uma variável para outra, é chamado de conversão de tipo explícita . Em outras palavras, uma conversão explícita permite que o programador altere ou converta manualmente o tipo de dados de uma variável para outro tipo. Por isso, também é conhecido como typecasting. Geralmente, forçamos a conversão explícita de tipo para converter dados de um tipo para outro porque isso não segue a regra de conversão implícita.

A conversão explícita de tipo é dividida de duas maneiras:

  1. Conversão explícita usando o operador cast
  2. Conversão explícita usando o operador de atribuição

Programa para converter valor float em tipo int usando o operador cast

Operador de elenco: Na linguagem C++, um operador cast é um operador unário que converte à força um tipo em outro tipo.

Vamos considerar um exemplo para converter o tipo de dados float em tipo int usando o operador cast da conversão explícita na linguagem C++.

Programa3.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; } 

Saída

executando scripts no linux
 The value of x is: 6 

Programa para converter um tipo de dados em outro usando o operador de atribuição

Vamos considerar um exemplo para converter o tipo de dados de uma variável em outra usando o operador de atribuição no programa C++.

Programa4.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; } 

Saída

 The value of int num1 is: 25 The value of float num2 is: 25.0