Programação
 › Algoritmo  › C/C++  › Java
Web
 › HTML/XHTML  › JavaScript  › PHP
Sistema Operacional
 › Comandos de DOS  › Windows  › Linux  › Mac/BSD
Office
 › Word / Writer  › Excel / Calc
Áreas do Site
 › Download  › Fórum  › Blog
Recomendamos
Computadores e Informática em Lisboa
TI Expert » Programação » C/C++ » Typecast (Conversão de Tipos de Dados)

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");
}

Creative Commons License
Autor: Denys William Xavier
Este artigo está sob Licença Creative Commons.

Faça o download da versão em PDF Indique nosso site Gostou?
Indique nosso site!
Este artigo foi
lido 39398 vezes
Bookmark e Compartilhe

Páginas Relacionadas

Enquete
O Google Chrome OS irá desbancar o Microsoft Windows 7?
» ProgramaçãoAlgorítmo | C/C++ | Java

» WebHTML/XHTML | JavaScript | PHP

» Sistema OperacionalComandos de DOS | Windows | Linux | Mac/BSD

» OfficeWord/Wirter | Excel/Calc

» Áreas do SiteDownloads | Fórum | Blog