Pergunta

Embora seja simples, não consegui encontrá-lo pesquisando no Google.Como sabemos, a representação de ponto flutuante suporta uma gama maior de números e a operação é mais lenta do que com números inteiros puros.Também sabemos como a mantissa e os expoentes são usados ​​para representar um ponto flutuante.Mas minha pergunta é que, digamos, em um sistema de 32 bits, s* b^e a saída é maior que 32 bits ou 32 bits?(onde s=significando, b=base,e=expoente)

Foi útil?

Solução

O número exato de bits usados ​​para representar a mantissa e o expoente dos números de ponto flutuante varia de CPU para CPU, portanto a questão certamente depende da arquitetura.

Existe um padrão que é muito dominante: Ponto Flutuante IEEE, e de acordo com esta questão SO relacionada todas as principais CPUs que você provavelmente encontrará hoje o implementam, incluindo IA32.

De acordo com a Wikipedia, o Ponto Flutuante IEEE exige que pelo menos um dos seguintes itens esteja disponível em qualquer implementação:

  • binário32:Mantissa de 24 bits (incluindo 1 bit de sinal) e expoente de 8 bits
  • binário64:Mantissa de 53 bits (incluindo 1 bit de sinal) e expoente de 11 bits

Supondo que por 32 bits você quer dizer o Família IA 32 (que é apenas uma das poucas arquiteturas que usa 32 bits), então o ponto flutuante registra pode conter até 80 bits, o que significa que binário32, binário64 e um formato não IEC de 80 bits com 15 bits de expoente podem ser suportados.Para diferenciar entre instruções de 32 bits e 64 bits, a maioria dos montadores usa modificadores de tamanho como QWORD ou DWORD.

Além disso, além das implementações de CPU, as linguagens também podem exigir conformidade com o Ponto Flutuante IEEE.Na linguagem C, por exemplo, o Anexo 7 especifica que se a macro __STDC_IEC_599__ é definido automaticamente pelo compilador então float é garantido que seja binário32 e double binário64. long double não foi corrigido para ser IEC, portanto, poderia usar 80 bits em um arco IA32.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top