2009-03-12 9 views
10

Un ami & Je débattaient comment sont stockés pendant le déjeuner d'aujourd'hui Inf et de NaN.Quelle est la représentation interne des infor et NaN?

Prenez Fortran 90 par exemple. Les réels de 4 octets peuvent obtenir la valeur de Inf ou NaN. Comment est-ce stocké en interne? Vraisemblablement, un vrai 4-octet est un nombre représenté en interne par un nombre binaire à 32 chiffres. Les Inf et NaN sont-ils stockés sous forme de nombres binaires à 33 bits?

Répondre

20

Plus précisément à partir de link Pesto:

Le point unique représentation standard IEEE flottante précision requiert un mot de 32 bits, ce qui peut être représenté comme numérotés de 0 à 31, de gauche à droite. Le premier bit est le bit de signe, S, les huit bits suivants sont les bits d'exposant, « E », et les 23 derniers bits sont la fraction « F »:

 
S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF 
0 1  8 9     31 

La valeur V représentée par le mot peut déterminé comme suit:

  • Si E=255 et F est différent de zéro, V=NaN ("Pas un numéro")
  • Si E=255 et F est égal à zéro et S est 1, puis V=-Infinity
  • Si E=255 et F est égal à zéro et S est 0, puis V=Infinity
  • Si 0<E<255 puis V=(-1)**S * 2 ** (E-127) * (1.F) où « 1.F » est destiné à représenter le nombre binaire créé par préfixer F avec un implicite menant 1 et un point binaire .
  • Si E=0 et F est non nul, alors V=(-1)**S * 2 ** (-126) * (0.F) Ces sont des valeurs "non normalisées".
  • Si E=0 et F est égal à zéro et S est 1, puis V=-0
  • Si E=0 et F est égal à zéro et S est 0, puis V=0
9

représentations ponctuelles La plupart Floating sont basés sur la norme IEEE, qui a set patterns défini pour Inf et NaN.

+2

lien est rompu. – 0xbe5077ed

Questions connexes