- O código abaixo compila?
short idade = 20;
long idadeGrande = idade;
-
Variáveis do tipo int e float tem um tamanho de 32 bits, portanto converter valores float para int pode ser feito implicitamente. Essa afirmação é verdadeira ou falsa?
-
O que acontece se fizermos uma conversão explícita de um valor não suportado? Por exemplo:
long valorGrandeDemais = 9223372036854775807;
int valorMenor = (int) valorGrandeDemais;
Qual seria o resultado ao tentar rodar esse código? A) Erro de compilação. Esse valor é grande demais para caber num int. B) Compila e não gera erros, mas por não conseguir armazenar o número numa variável int, é passada então o valor "-1" para a variável "valorMenor". C) O código compila, mas vai gerar um erro quando ele tentar fazer essa conversão. D) Compila, não gera erros, e o valor é guardado sem problema nenhum na variável int.
Se não souber a resposta, tente rodar o código e descubra por si próprio!
- (Para pesquisar) Variáveis do tipo char são interessantes. Elas representam números inteiros positivos até 65535, o que significa que se fizermos esse código:
ushort valorPequeno = 65;
char charDeValorPequeno = (char)valorPequeno;
Console.Out.WriteLine("Valor do Char " + charDeValorPequeno);
Ele compila normalmente! Mas se então rodarmos o código, temos o resultado
Valor do Char: A
Mas o valor não era 65? O que aconteceu aqui?
Só veja o gabarito após terminar os exercícios
-
Resposta: Sim. Tipos short tem tamanho menor que long e portanto a conversão implícita é possível.
-
Resposta: Falsa. É possível fazer uma conversão implícita de int para float, mas não o contrário. Isso é porque todo valor inteiro de um int cabe num float, mas os valores quebrados/decimais de um float não cabem num int. Portanto, apesar de eles terem o mesmo tamanho em memória, é impossível converter implícitamente. É possível, porém, fazer a conversão explícita, como por exemplo:
float pi = 3.14f;
int piInteiro = (int)pi;
Apenas a parte inteira do valor float iria ser guardada na variável int. No caso, 3.
-
Resposta: Letra B, compila e não gera erros, mas o valor guardado no int é -1. O número é grande demais para caber num int, então, para não gerar erro, o compilador passa o valor -1.
-
Resposta: Variáveis do tipo char representam diretamente caracteres do conjunto Unicode. Cada número que um char suporta um caracter. No caso, o número 65 representa a letra A maiúscula.