Sistemas de Numeração

Analista - IRB - 2004
17- Uma maneira de determinar se ocorreu ou não overflow durante a soma ou subtração de dois números é por meio da análise do resultado da operação. Considerando a soma de dois números inteiros positivos A e B, diferentes de zero, pode-se afirmar que ocorreu overflow quando o resultado é
a) zero.
b) positivo.
c) negativo.
d) igual a A, isto é, à primeira parcela da soma.
e) igual a B, isto é, à segunda parcela da soma.
Gabarito: c

18- Considerando as regras de overflow para a subtração, é correto afirmar que ocorreu overflow se o resultado, ao se subtrair
a) um número negativo de um número positivo, for zero.
b) um número positivo de um número positivo, for zero.
c) um número positivo de um número negativo, for negativo.
d) um número negativo de um número positivo, for positivo.
e) um número negativo de um número positivo, for negativo.

Gabarito: e

Acontece que a ULA (Unidade Lógica Aritmética), responsável pelos cálculos, armazena os resultados em registradores, memórias muito rápidas e de capacidade limitada. Portanto, se eu somar dois números muito grandes pode ser que não tenha espaço para representar o resultado no registrador, e a este fenômeno chamamos de overflow (transbordar).
Acontece que o hardware da máquina utiliza o bit mais a esquerda para representar números negativos da forma: -5 = [1 101] e 5 = [0 101] Ocorre que se o resultado da minha operação é muito grande o resultado será armazenado neste registrador e este bit vai ser setado para um, e portanto o resultado será mostrado como um número negativo, e incorreto. No exemplo anterior onde meu registrador tem 5 bits, pense que eu queria armazenar o resultado de 5 + 5 = 10 (1010). Sacou? O resultado vai acabar aparecendo como -2! Acontece que se eu somo dois números positivos o resultado tem que ser positivo, correto? Mas se ao final desta operação eu encontrar um número negativo então houve alguma coisa de errado .... overflow!
A segunda questão segue o mesmo princípio, mas o cara tentou complicar mais um pouquinho. Bem, lembre-se do ensino médio que: 5 - ( - 5) = 10 Portanto, segue o mesmo princípio: se ao somar os dois números anteriores aparecer um número negativo (-2 por exemplo) então ocorreu algo de errado na aritmética: overflow.

Comentários

No caso eu acho que não acontece exatamente assim, pois as máquinas usam a representação por complemento de 2. O que faria -5 ser igual a [1011] e não a [1101] que é -3. Mas a explicação da quase no mesmo xD.

parabéns pelo Blog, tem me ajudado muito ;-)

Postagens mais visitadas deste blog

Redação Ti Nota 10 - Klauss

Prova Discursiva nota 10 - Banca Cespe

Portugues - Orações