4 - Indica o que é mostrado no ecrã pelo seguinte código C#. Justifica a tua resposta.
uint n = uint.MaxValue;
Console.WriteLine(n + 1);
O output será 0
. O valor máximo do tipo uint
é de 4 294 967 296
, ao
incrementarmos por 1, o valor irá ficar 0
devido a já estarmos no seu valor
máximo. Funciona como um ciclo, sempre que um tipo inteiro chega ao seu valor
máximo por norma volta ao seu valor mínimo.
Por Sara Gama.
O que é mostrado no ecrã é 0
.
A constante uint.MaxValue
atribui a n
o
valor máximo que uma variável de type uint
pode ter:4294967295.
Quando são incrementados valores a uma variável que já esteja atribuída com o seu valor máximo é causado um overflow.
Numa situação de overflow a variável em questão retorna ao valor mínimo do seu type, e a incrementação de valores continua daí.
Neste caso portanto temos n = 4294967295
; ao incrementarmos 1 valor a n
,
que é uma variável de type uint
,
causamos overflow e n
toma o valor mínimo do seu type, que é 0
.
Logo, no fim da execução do código: n = 0
.