Jétudie la représentation des nombres fractionnaires sous forme de valeurs à virgule flottante. Cela va être une représentation 8 bits. Quelque part dans le texte, il est dit que:
« Nous utilisons le premier bit pour représenter le signe (1 pour négatif, 0 pour positif), les quatre bits suivants pour la somme de 7 et lexposant réel (nous ajoutons 7 pour permettre les exposants négatifs), et les trois derniers bits pour la partie fractionnaire de la mantisse
Maintenant la question is: Pourquoi « 7 » – et pas une autre valeur – doit être ajouté à lexposant réel?
Commentaires
- Bienvenue dans CS.SE! Le texte indique pourquoi, entre parenthèses. Soit dit en passant, si vous ' ne comprenez pas l’explication dans un texte, il ' est souvent utile de rechercher une explication différente du sujet . Il existe de nombreuses ressources en virgule flottante.
- Alors, pourquoi 7 devrait être ajouté?
- Si vous ' avez compris la réponse à votre première question, je vous encourage à modifier votre message pour montrer ce que vous comprenez.
Réponse
Avec 4 bits, vous pouvez représenter 16 valeurs différentes: 0,1, …, 15. Si vous souhaitez autoriser les exposants négatifs, il est logique de prendre (environ) la moitié des valeurs possibles pour signifier un exposant négatif. En ajoutant 7 à lexposant, vous mappez les valeurs -7, -6, …, 0,1, …, 8 à la plage représentable. Vous pouvez également rechercher complément à deux .
Commentaires
- Donc, ajouter 7, mappe -7, -6, …, – 1 à leurs valeurs positives correspondantes et ajouter une valeur supérieure à 7 aboutit à une valeur hors plage qui est incorrecte. Pour la même raison, ajouter moins de 7 à lexposant ne ' t résoudre le problème. Merci, jai ' ce que je cherchais.
- Lajout de nombres différents change les exposants négatifs et positifs que vous prenez en charge. ' est une décision de conception. Peut-être que le simple fait de prendre en charge -1 suffit pour votre application.
- Oui , vous avez raison. Il sagit dune décision de conception que linstructeur a mise en œuvre à travers le didacticiel et nest ' une contrainte stricte.
- La décision dutiliser un décalage au lieu de 2 ' s complément IIRC devait garder linverse de la plus petite valeur plus petite que la plus grande va lue, cest à dire pour éviter les débordements. Il a été soigneusement choisi, en dautres termes.
- @KWillets: Le décalage permet également de représenter zéro sous forme de zéros et permet dutiliser des comparaisons dentiers pour comparer des nombres à virgule flottante (à lexclusion du bit de signe)