en C ++, par exemple fmod (-2,2) code> retourne
-0 code>. L'expression
-0 == 0 code> est vraie, mais les bits sont différents. Quel est le but d'avoir quelque chose comme
-0 code> qui devrait être
0 code> mais est représenté différemment? Est
-0 code> utilisé exactement de la même manière que
0 code> dans n'importe quel calcul? P>
4 Réponses :
IEEE Standard 754 permet à la fois +0 et -0. Même mantissa, signe différent. Ils devraient être les mêmes en calculs. P>
Sauf quand ils sont différents; 1 / x code>, par exemple.
Ok, différent. Je ne divis pas par zéro qui souvent, alors pardonnez-moi.
Le Signé Zero La page Wikipedia répondra la plupart de ces questions: P>
Signé zéro est zéro avec un associé signe. En arithmétique ordinaire, -0 = 0. Cependant, en informatique, un nombre Les représentations permettent la existence de deux zéros, souvent notés par -0 (zéro négatif) et +0 (positif zéro). Cela se produit dans certains signés représentations de nombre pour les entiers, et dans la plupart du nombre de points flottants représentations. Le numéro 0 est généralement codé comme +0, mais il peut être représenté par +0 ou -0. p>
la norme IEEE 754 pour flotter arithmétique point (actuellement utilisé par la plupart des ordinateurs et de la programmation Langues qui supportent le point flottant chiffres) nécessite à la fois +0 et -0. Les Les zéros peuvent être considérés comme une variante de la ligne de nombres réels étendue telle que 1 / -0 = -∞ et 1 / + 0 = + ∞, division par zéro n'est que non défini pour ± 0 / ± 0. p>
(...) p>
Il est affirmé que l'inclusion de Signé zéro à IEEE 754 en fait beaucoup plus facile d'obtenir une précision numérique Dans certains problèmes critiques, dans particulier lors de l'informatique avec complexe fonctions élémentaires. p> blockQuote>
Je crois que le signe négatif est causé par la mise en oeuvre de FMOD (MISS?), où le bit de signalisation est manipulé explicitement et attaché à la fin de la fin du traitement. P>
Je suis désolé mais il n'y a pas grand chose à ajouter. Le signe négatif n'est pas causé par la mise en œuvre de la FMOD (MIS). Lisez les autres réponses pour une explication.
Non, +0 code> et
-0 code> ne sont pas utilisés de la même manière dans tous les calculs. Par exemple:
3·(+0) = +0
+0/-3 = -0
Je crois que 1/0 est une infinité positive et 1/ -0 est une infini négative. Autre que cela je ne sais pas.
Je ne sais pas si la différence entre -0 et 0 est -0 ou 0.