Diferença entre conversão de tipo e conversão de tipo

Autor: Laura McKinney
Data De Criação: 1 Abril 2021
Data De Atualização: 4 Poderia 2024
Anonim
Diferença entre conversão de tipo e conversão de tipo - Tecnologia
Diferença entre conversão de tipo e conversão de tipo - Tecnologia

Contente


A diferença básica entre conversão de tipo e conversão de tipo, ou seja, conversão de tipo é feita "automaticamente" pelo compilador, enquanto que a conversão de tipo deve ser "explicitamente feita" pelo programador.

Os dois termos “conversão de tipo” e “conversão de tipo” ocorrem quando é necessário converter um tipo de dados em outro. Quando os dois tipos são compatíveis entre si, a conversão de um tipo para outro é feita automaticamente pelo compilador. Vamos discutir a diferença entre conversão de tipo e conversão com a ajuda do gráfico de comparação.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação:

Base para ComparaçãoTipo FundiçãoConversão de tipo
SignificadoUm tipo de dados é atribuído a outro pelo usuário, usando um operador de conversão e, em seguida, é chamado de "conversão de tipo".A conversão de um tipo de dados para outro automaticamente pelo compilador é chamada "Conversão de Tipo".
AplicadoA conversão de tipos também pode ser aplicada a dois tipos de dados incompatíveis.A conversão de tipo só pode ser implementada quando dois tipos de dados são compatíveis.
OperadorPara converter um tipo de dados para outro, é necessário um operador de conversão ().Não é necessário operador.
Tamanho dos tipos de dadosO tipo de destino pode ser menor que o tipo de origem.Aqui o tipo de destino deve ser maior que o tipo de origem.
ImplementadoIsso é feito durante o design do programa.Isso é feito explicitamente durante a compilação.
Tipo de conversão

Reduzindo a conversão.Ampliando a conversão.
Exemploint a;
byte b;
...
...
b = (byte) a;
int a = 3;
flutuador b;
b = a; // valor em b = 3.000.


Definição de Fundição de Tipo

Tipo de fundição pode ser definido como a conversão de um tipo de dados para outro tipo de dados, pelo programador, no momento do design do programa. A conversão automática de um tipo de dados para outro não é possível o tempo todo. Pode ser que o 'tipo de destino' seja menor que o 'tipo de origem'. Portanto, o programador deve converter o tipo de dados maior explicitamente para o tipo de dados menor usando o operador de conversão '()'. Como o tipo de dados maior é modulado para o tipo de dados menor, também é chamado de "restrição de conversão".

Declaração:

destination_type = (target_type) variável / valor // tipo de destino é um tipo no qual você deseja converter o tipo de origem; é sempre o tipo de destino.

Exemplo

Vamos entender com um exemplo. Você deseja converter o tipo de dados 'int' em 'byte'. Agora, como "byte" é menor que "int", a conversão de tipo não é permitida. Aqui, tivemos que converter implicitamente 'int' em 'byte' usando o operador de conversão '()'. Como "int" é maior que "byte", o tamanho de "int" será reduzido para o intervalo "int mod byte".


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

Quando o "flutuador" é convertido em "int", o tamanho do flutuador é truncado, pois "int" não armazena o valor fracionário. Se o tamanho do tipo de destino for muito pequeno para o tipo de fonte caber, o tipo de fonte é o tipo de destino do módulo 'intervalo'. A transmissão também pode ser aplicada quando os tipos de dados são compatíveis. É uma boa prática usar a conversão de tipos sempre que necessário.

Definição de conversão de tipo

Conversão de tipo é a conversão automática de um tipo de dados para outro sempre que necessário, feita explicitamente pelo compilador. Mas há duas condições a serem satisfeitas antes da conversão de tipo.

  • O tipo de origem e destino deve ser compatível.
  • O tipo de destino deve ser maior que o tipo de origem.

Essas duas condições devem satisfazer para alcançar a conversão de tipo, e esse tipo de conversão é chamado de 'conversão de ampliação', pois como um tipo menor é convertido em tipo maior, ocorre a ampliação de tipo. Para essa conversão ampliada, tipos numéricos como 'int', 'float' são compatíveis entre si, enquanto numéricos para char e booleano ou char para booleano também não são compatíveis.

Exemplo

Este exemplo fornecerá uma visão melhor deste

int a = 3; flutuador b; b = a; // valor em b = 3.000.

Aqui, 'int' é convertido em 'float', que é maior que 'int', para que ocorra uma ampliação do tipo de fonte. Aqui, nenhum operador de conversão é necessário, pois o compilador fará isso explicitamente.

  1. A diferença básica que distingue a conversão de tipos da conversão de tipos é que a conversão de tipos é a conversão de um tipo para outro, feita pelo programador. Por outro lado, a conversão de tipo é a conversão de um tipo para outro, feita pelo compilador durante a compilação.
  2. A conversão de tipo pode ser aplicada aos tipos de dados, que podem não ser compatíveis entre si. Por outro lado, a conversão de tipos só pode ser aplicada aos tipos de dados compatíveis entre si.
  3. A conversão de um tipo para outro na conversão de tipo requer o operador de conversão “()”, enquanto a conversão de um tipo de dados para outro na conversão de tipo não requer nenhum operador.
  4. Ao converter um tipo de dados para outro na conversão de tipos, o tipo de destino pode ser maior ou menor que o tipo de origem. Por outro lado, o tipo de destino deve ser maior que o tipo de origem na conversão de tipo.
  5. A conversão de um tipo para outro é feita durante a codificação da conversão de tipo. Por outro lado, na conversão de tipo, a conversão de um tipo para outro é feita explicitamente durante a compilação.
  6. A conversão de tipo é chamada de conversão de restrição, porque aqui o tipo de destino pode ser menor que o tipo de origem. Ao contrário, a conversão de tipo é chamada de conversão de ampliação, porque aqui, o tipo de destino deve ser maior que o tipo de origem.

Conclusão:

Pode-se concluir que a conversão de tipos e a conversão de tipos realizam a tarefa de converter um tipo de dados para outro, mas diferem no sentido de que a conversão de tipos é feita pelo programador, usando cast operator () 'e a conversão de tipos é feita pelo compilador e não usa nenhum operador.