FC ConcursosFC Concursos

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:

  1. -128 a 127.
  2. 0 a 256.
  3. -32768 a 32767.
  4. -2048 a 2047.
  5. 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

Continue aprendendo