Published
Last modified
C/C++ - Typecast
Typecasting é uma técnica utilizada em C para simples conversão de tipo de dado, ou seja, ele não converte um tipo de dado, mas sim, faz com que ele se pareça com outro tipo de dado.
Typecast
Typecasting é uma técnica utilizada em C para simples conversão de tipo de dado, ou seja, ele não converte um tipo de dado, mas sim, faz com que ele se pareça com outro tipo de dado.
A técnica de typecasting é importante porque muitas vezes temos que retornar valores de tipos diferentes ou, de forma vulgar, traduzir certos tipos de dados genéricos.
O importante aqui é saber que um processo com um tipo de dado, sempre resultará no mesmo tipo de dado.
Vamos esclarecer de forma prática essa questão:
Se dividirmos um número inteiro, por exemplo, 10 por um outro número inteiro, digamos 3, o resultador será um número decimal, ou seja, um número de ponto flutuante. Matematicamente analisando, 10÷3=3,333333. Mas, quando fazemos esta operação em C/C++, o resultado será impreciso -> 10÷3=3, porque o resultado de uma operação envolvendo números inteiros resulta em um outro número inteiro. E é aqui, neste momento, que o typecasting se mostra útil.
Então, como fazemos o typecasting?
Para fazer o typecasting, basta colocar entre parênteses o tipo de dado para o qual deseja converter e, então, colocá-lo antes de uma variável específica ou depois do operador de atribuição (=) para indicar que o resultado proveniente daquela operação deve ser convertido.
Pensando no exemplo acima, vamos nomear uma variável x sendo float (decimal) e iremos dividir duas variáveis inteiras: n1 e n2;
#include <iostream> using namespace std; int main (void){ int n1=10, n2=3; float x; x=n1/n2; cout << x << endl; system ("pause"); }
Se observarmos, há exatamente o erro que já foi explicado aqui. Estamos atribuindo a variável do tipo float o resultado da divisão de dois inteiros. Para corrigir esse problema, usaremos o typecasting. Vejamos
#include <iostream> using namespace std; int main (void){ int n1=10, n2=3; float x; x=(float)n1/n2; cout << x << endl; system ("pause"); }
Pronto! Agora o resultado de n1/n2 será entendido como sendo um float.
Para demonstrar que podemos converter a interpretação de quaisquer dados, abaixo está um algoritmo que cria a tabela ASCII. Para fazê-la, nós usaremos apenas uma variável inteira curta no código inteiro, e a converteremos para char.
#include <iostream> using namespace std; int main (void){ for (unsigned short i=15; i<255; i++){ cout << i << "-" << (char)i << "\t\t"; } cout << endl; system ("pause"); }
C/C++ - Typecast by Denys Xavier is licensed under a Creative Commons Attribution 4.0 International License.