O número 2.147.483.647 – ou, se preferir, dois bilhões, cento e quarenta e sete milhões, quatrocentos e oitenta e três mil, seiscentos e quarenta e sete – é um algarismo emblemático e que tem sido acusado de ser o responsável por catástrofes e ocorrências levianos em nossa sociedade.
A queda de espaçonaves, mísseis que caíram no lugar errado, bugs em jogos e a quebra do contador de visualizações do YouTube são apenas alguns dos “feitos” creditados ao número 2.147.483.647. Mas qual é a relação de todos esses acontecimentos com esse gigantesco algarismo?
2.147.483.647: qual é o mistério por trás desse número?
Uma questão computacional
Diferente do ser humano, o computador não trabalha utilizando o sistema decimal para a realização de cálculos. As máquinas usam o esquema binário, que adota apenas o 0 e o 1 como os únicos números para representar todos os outros. Apesar das vantagens na adoção desse conceito, a união dele com a arquitetura de 32 bits de computadores acabou criando uma limitação que não pôde ser prevista.
Na representação binária, o 2.147.483.647 é o número inteiro mais alto que pode ser armazenado em 32 bits. Isso significa que sistemas que usam essa arquitetura não vão conseguir representar valores maiores do que esse e podem – e provavelmente vão – apresentar comportamentos imprevisíveis caso tentem.
2.147.483.647 é o número inteiro mais alto que pode ser armazenado em 32 bits.
Um exemplo para entender
Imagine um contador cujo valor máximo é 99. O que aconteceria se tentássemos representar o número 137 nele? Dependendo da forma como ele está configurado, depois do último algarismo, a contagem seria iniciada novamente a partir do 0 até chegar ao 37.
Mas e se esse contador limitado fosse um fator importante para a obtenção de uma resposta que precisasse ser exata? E, em vez de retornar 137 – o valor esperado –, ele devolvesse 37, um número incorreto diante das expectativas? É mais ou menos isso o que aconteceu com o bug do milênio, quando a contagem do ano passou de 1999 para 2000 e muitos sistemas consideravam apenas os dois últimos dígitos desse algarismo.
Falha no contador? Ou arquitetura limitada?
Na vida real
Esse pode não parecer um problema muito grave, mas, como dissemos, tem sido acusado de ser o responsável por algumas catástrofes em nossa sociedade. Investigações apontam que o overflow – o nome dado à incapacidade de um sistema representar um número – é o responsável pela explosão do foguete francês Ariane 501 em 1996.
Apesar de ainda não confirmado, estudos também sugerem que o abandono do Deep Impact – missão não tripulada da NASA – em 2013 se deu por conta do mesmo fenômeno. A recente queda de um Boieng 787 também tem relação com o número 2.147.483.647.
Queda de Boeing pode estar relacionada ao número 2.147.483.647.
Entretanto, esse algarismo também foi o responsável por ocorrências menos catastróficas. O caso do contador do YouTube é um bom exemplo. O grande sucesso de 2012, Gangnam Style, do cantor PSY, fez com que o serviço de vídeos da Google não conseguisse exibir corretamente a contagem de visualizações.
De acordo com a empresa, isso ocorreu porque o sua plataforma estava configurada para não trabalhar com inteiros que ultrapassassem o máximo representado por um número binário de 32 bits – ou seja, 2.147.483.647 visualizações. A mudança para uma arquitetura de 64 bits corrigiu o problema, mas reforçou o alerta para que outras empresas não deixassem que essa limitação fosse a responsável por tragédias – como já havia acontecido.
.....
Assim como ocorreu com o bug do milênio, é provável que, com o passar do tempo, o problema do overflow passe a ser cada vez mais frequente. Será que ainda vamos ouvir falar muito sobre o número 2.147.483.647?
Fontes
Categorias