Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gomesricardo

Significado dos códigos de números grandes

Recommended Posts

Olá pessoal, estou com a seguinte dúvida: estou desenvolvendo um programa que calcula o número de transitores de um processador em qualquer época, seja passado, presente ou futuro, de acordo com a Lei de Moore.

 

Quando peço para calcular o número de transitores do ano 2204 por exemplo, vem escrito assim:

 

1.91077e+038

 

Alguém compreende este número? O que significa? O que é "e" e o "+038"? Não entendo. Rodei o programa num computador de 32 bits com o Codebloks. Obrigado desde já!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@@gomesricardo

 

Posso estar errado, mas acho que esse e+038 significa 10 elevado a 038 ( 10^038).

Ou seja, (1.91077 * 10^038).

 

 

obs: Eu vi a muito tempo atrás em um livro - #define INFINITO 9e+99 - o autor disse que era (9 * 10^99).

 

 

brHUE

Compartilhar este post


Link para o post
Compartilhar em outros sites

@@gomesricardo

 

Posso estar errado, mas acho que esse e+038 significa 10 elevado a 038 ( 10^038).

Ou seja, (1.91077 * 10^038).

 

 

obs: Eu vi a muito tempo atrás em um livro - #define INFINITO 9e+99 - o autor disse que era (9 * 10^99).

 

 

brHUE

 

Ok, beleza, mas está surgindo outro problema. Em 1971 havia 2300 transistores num processador, então segundo a Lei de Moore daqui a 24 meses (2 anos) o n° de transistores dobra e vai para 4600, e daqui a mais 24 meses torna dobrar novamente indo para 9200 e assim sucessivamente. Então a formula geral neste caso é 2300*(2^x), sendo x o número de vezes que irá dobrar e pode ser calculado como x=[(y-1971)*12]/24, sendo y o ano em que queremos descobrir quantos transistores existem. Espero que tenham entendido a lógica.

 

Mas ao calcular para o ano 2204 o programa retorna 1.91077e+38, que seria no caso o mesmo que 1.91077*10^38. Porém minha calculadora científica retorna 2.70*10^38. Porque os dois valores estão diferentes?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está me cheirando a overflow.

Poste o código.

 

OBS: aqui no Python 3 deu 2.7022301224922385e+38.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.