Zéro signéLe zéro signé est un zéro accompagné d'un signe. En arithmétique ordinaire, le nombre 0 n'a pas de signe, de sorte que −0, +0 et 0 sont identiques. Cependant, en informatique, certaines représentations des nombres admettent l'existence de deux zéros, souvent notés −0 (zéro négatif) et +0 (zéro positif), considérés comme égaux par les opérations de comparaison numérique mais avec des comportements différents possibles dans des opérations particulières. Cela se produit dans les représentations de nombres signés de signe et de magnitude et de complément à un pour les nombres entiers, et dans la plupart des représentations de nombres à virgule flottante. Le nombre 0 est généralement codé comme +0, mais peut être représenté par +0 ou -0. La norme IEEE 754 pour l'arithmétique à virgule flottante (actuellement utilisée par la plupart des ordinateurs et des langages de programmation prenant en charge les nombres à virgule flottante) nécessite à la fois +0 et -0. L'arithmétique réelle avec des zéros signés peut être considérée comme une variante de la droite des nombres réels étendue telle que 1/−0 = − ∞ et 1/+0 = +∞ ; la division n'est indéfinie que pour ± 0/±0 et ±∞/±∞. Le zéro signé négativement fait écho au concept d' analyse mathématique consistant à approcher 0 par le bas en tant que limite unilatérale, qui peut être notée x → 0 −, x → 0−, ou x → ↑0. La notation "-0" peut être utilisée de manière informelle pour désigner un nombre négatif qui a été arrondi à zéro. Le concept de zéro négatif a également des applications théoriques en mécanique statistique et dans d'autres disciplines. On prétend que l'inclusion du zéro signé dans l'IEEE 754 facilite beaucoup l'obtention d'une précision numérique dans certains problèmes critiques[1], en particulier lors du calcul avec des fonctions élémentaires complexes[2]. D'autre part, le concept de zéro signé va à l'encontre de l'hypothèse générale faite dans la plupart des domaines mathématiques selon laquelle zéro négatif est la même chose que zéro. Les représentations qui autorisent le zéro négatif peuvent être une source d'erreurs dans les programmes, si les développeurs de logiciels ne tiennent pas compte du fait que si les deux représentations zéro se comportent comme égales dans les comparaisons numériques, elles donnent des résultats différents dans certaines opérations. ReprésentationsLes formats d'entiers binaires peuvent utiliser divers encodages . Dans le codage en complément à deux largement utilisé, zéro n'est pas signé. Dans une représentation de signe et d'amplitude 1+7 bits pour les nombres entiers, le zéro négatif est représenté par la chaîne de bits 10000000 . Dans une représentation en complément à un sur 8 bits, le zéro négatif est représenté par la chaîne de bits 11111111 . Dans ces trois codages, le zéro positif ou non signé est représenté par 00000000 . Cependant, les deux derniers codages (avec un zéro signé) sont rares pour les formats entiers. Les formats les plus courants avec un zéro signé sont les formats à virgule flottante (formats IEEE 754 ou similaires), décrits ci-dessous. Dans les formats binaires à virgule flottante IEEE 754, les valeurs nulles sont représentées par l'exposant biaisé et le signifiant, tous deux étant nuls. Le zéro négatif a le bit de signe mis à un. On peut obtenir un zéro négatif comme résultat de certains calculs, par exemple comme résultat d'un sous- dépassement arithmétique sur un nombre négatif (d'autres résultats peuvent également être possibles), ou Dans les formats décimaux à virgule flottante IEEE 754, un zéro négatif est représenté par un exposant étant tout exposant valide dans la plage pour le format, le vrai signifiant étant zéro et le bit de signe étant un. Propriétés et manipulationsLa norme à virgule flottante IEEE 754 spécifie le comportement du zéro positif et du zéro négatif sous diverses opérations. Le résultat peut dépendre des paramètres actuels du mode d'arrondi IEEE . NotationDans les systèmes qui incluent à la fois des zéros signés et non signés, la notation et est parfois utilisé pour les zéros signés. ArithmétiqueL'addition et la multiplication sont commutatives, mais certaines règles spéciales doivent être suivies, ce qui signifie que les règles mathématiques habituelles pour la simplification algébrique peuvent ne pas s'appliquer. le Le signe ci-dessous montre les résultats obtenus en virgule flottante (ce n'est pas l'opérateur d'égalité habituel). La règle habituelle pour les signes est toujours suivie lors de la multiplication ou de la division :
Il existe des règles spéciales pour ajouter ou soustraire des zéros signés :
En raison du zéro négatif (et aussi lorsque le mode d'arrondi est vers le haut ou vers le bas), les expressions −(x − y) et (−x) − (−y), pour les variables à virgule flottante x et y, ne peuvent pas être remplacées par y − x . Or (−0) + x peut être remplacé par x en arrondissant au plus proche (sauf quand x peut être un NaN de signalisation ). Quelques autres règles spéciales :
La division d'un nombre non nul par zéro définit l' indicateur de division par zéro et une opération produisant un NaN définit l'indicateur d'opération invalide. Un gestionnaire d'exceptions est appelé s'il est activé pour l'indicateur correspondant. ComparaisonsSelon l'IEEE 754 standard, zéro négatif et zéro positif doivent être comparés comme égaux aux opérateurs de comparaison (numériques) habituels, comme les opérateurs
Remarque : la conversion en type intégral ne fonctionnera pas toujours, en particulier sur les systèmes en complément à deux. Cependant, certains langages de programmation peuvent fournir des opérateurs de comparaison alternatifs qui distinguent les deux zéros. C'est le cas, par exemple, de la méthode equals dans la classe En valeurs arrondiesDe manière informelle, on peut utiliser la notation "-0" pour une valeur négative qui a été arrondie à zéro. Cette notation peut être utile lorsqu'un signe négatif est significatif ; par exemple, lors de la tabulation des températures Celsius, où un signe négatif signifie en dessous de zéro . En mécanique statistiqueEn mécanique statistique, on utilise parfois des températures négatives pour décrire des systèmes à inversion de population, qui peuvent être considérés comme ayant une température supérieure à l'infini positif, car le coefficient d'énergie dans la fonction de répartition de la population est − 1/Température. Dans ce contexte, une température de − 0 est une température (théorique) supérieure à toute autre température négative, correspondant à l'étendue maximale (théorique) concevable d'inversion de population, l'extrême opposé à +0[5]. Notes et références(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Signed zero » (voir la liste des auteurs).
Références
Voir aussiArticles connexes |