Questão FC373287
Em um programa na linguagem Java, um Técnico declarou uma variável e atribuiu a ela um valor inteiro por meio do comando short a = 32768;. Ao tentar executar a aplicação, este coma
Linguagens de Programação
FCC · 2019
Em um programa na linguagem Java, um Técnico declarou uma variável e atribuiu a ela um valor inteiro por meio do comando short a = 32768;. Ao tentar executar a aplicação, este comando gerou uma exceção porque variáveis do tipo short só podem conter valores na faixa de:
- -128 a 127.
- 0 a 256.
- -32768 a 32767.
- -2048 a 2047.
- 0 a 32667.
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
short em Java é um inteiro com sinal representado em 16 bits, ou seja, usa-se o sistema de complemento de dois para números negativos.
Na representação em complemento de dois a amplitude positiva máxima é \(2^{15}-1\) e a negativa mínima é \(-2^{15}\). Aqui \(2^{15}=32768\), portanto a fórmula gera o intervalo \(-2^{15}\) a \(2^{15}-1\).
Isso resulta na faixa numérica -32768 a 32767. Qualquer literal inteiro fora desse intervalo não pode ser armazenado em short sem conversão explícita.
Ao tentar atribuir 32768 à variável do tipo short, ocorre erro de conversão (ou estouro se for forçado por cast); a solução é usar int ou long quando precisar de valores maiores.
Conteúdo do catálogo FC Concursos · Atualizado em