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
|
TypecastTypecasting é 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");
}
Páginas Relacionadas |
Enquete
|