Je sais, la question semble étrange. Les programmeurs pensent parfois trop. Veuillez lire la suite ...
En CI, utilisez signed
et unsigned
entiers beaucoup. J'aime le fait que le compilateur me prévienne si je fais des choses comme assigner un entier signé à une variable non signée. Je reçois des avertissements si je compare des entiers signés avec des entiers non signés et bien plus encore.
J'aime ces avertissements. Ils m'aident à garder mon code correct.
Pourquoi n'avons-nous pas le même luxe pour les flotteurs? Une racine carrée ne renverra certainement jamais un nombre négatif. Il existe également d'autres endroits où une valeur flottante négative n'a aucune signification. Candidat parfait pour un flotteur non signé.
Btw - Je ne suis pas vraiment intéressé par le seul petit plus de précision que je pourrais obtenir en supprimant le bit de signe des flotteurs. Je suis super content des float
s tels qu'ils sont en ce moment. Je voudrais juste marquer un flottant comme non signé parfois et obtenir le même genre d'avertissements que je reçois avec des entiers.
Je ne connais aucun langage de programmation prenant en charge les nombres à virgule flottante non signés.
Une idée de pourquoi ils n'existent pas?
ÉDITER:
Je sais que le FPU x87 n'a pas d'instructions pour traiter les flotteurs non signés. Utilisons simplement les instructions de flotteur signées. Une mauvaise utilisation (par exemple, passer en dessous de zéro) pourrait être considérée comme un comportement indéfini de la même manière qu'un débordement d'entiers signés n'est pas défini.