Informática, perguntado por Thor02, 1 ano atrás

Em sistemas Unix é possível descobrir em um determinado instante quantos segundos se
passaram desde 01 de janeiro de 1970 até o instante em questão. Usando este tipo de
informação é possível, por exemplo, calcular através de uma simples subtração quantos
segundos se passaram entre dois instantes de tempo diferentes. Nestes sistemas Unix
costumava-se usar uma variável inteira de 32 bits com sinal para contar os segundos
desde 01 de janeiro de 1970. Isto pode causar um enorme problema porque após um
determinado tempo a quantidade de segundos que se passaram ultrapassa o maior
número inteiro com sinal que se pode armazenar em 32 bits e aí problemas parecidos
com o bug do ano 2000 aparecem.
Para simplificar o problema considere que um ano tem sempre 365 dias de 24 horas.
Calcule em que ano o número de segundos irá ultrapassar o limite imposto pelo uso de
32 bits com sinal.

Soluções para a tarefa

Respondido por bokomoko
0
quando se armazena um número com sinal em notação binária significa que um dos bits será utilizado como sinal0 = positivo1 = negativo

Ora, se o número tem 32 bits e um bit vai ficar para o sinal então restam 31 bits para o valor do número
Isso faz com que o maior número positivo seja 2³¹-1 = 2.147.483.647
Considerando que um ano tem 365 * 24 * 60 * 60 segundos = 31.536.000
2.147.483.647 / 31.536.000 = 68 anos 35 dias 3 horas 14 minutos 7 segundos ou 24855,13 dias
O que dá 19 de janeiro de 2038 as 3 horas 14 minutos e 7 segundos
(tudo calculado no Excel) :)Leia mais em Brainly.com.br - brainly.com.br/tarefa/13719952#readmoreLeia mais em Brainly.com.br - brainly.com.br/tarefa/13867060#readmore
Leia mais em Brainly.com.br - https://brainly.com.br/tarefa/13896392#readmore
Perguntas interessantes