Unsigned double en C++?
Pourquoi ne pas le support du C++ unsigned double syntaxe?
- ce langs ne le soutenir? il pense qu'il est généralement admis si vous utilisez n'importe quel type de virgule flottante, puis non signé n'est pratiquement jamais nécessaire.
- Hey, j'ai corrigé votre syntaxe la syntaxe.
Vous devez vous connecter pour publier un commentaire.
Parce que typique à virgule flottante ne prennent pas en charge les formats de nombres non signés. Voir, par exemple, cette liste de la norme IEEE 754 formats.
L'ajout d'un format numérique qui n'est pas pris en charge par la commune de matériel rend la vie difficile pour les rédacteurs du compilateur, et n'est probablement pas jugé utile de l'effort.
C++ ne prend pas en charge non signé à virgule flottante types parce que la plupart du matériel de point flottant ne supporte pas non signé à virgule flottante types. Certaines cartes graphiques ne fonctionnent avec unsigned à virgule flottante, mais il est généralement interne, pas vraiment visible pour un programme ou un utilisateur.
Des entiers non signés un gain d'un peu plus de précision et sont légèrement différentes au niveau des bits de la sémantique pour les entiers signés. Des flotteurs et des doubles réserve toujours un bit pour le signe (sur la plupart des matériels) et n'ont pas de bit de la sémantique, donc il n'y a pas de réel avantage à avoir un unsigned type réel.
unsigned float x = -3;
et le compilateur se plaindre. Mais si vous soustraire à un plus grand nombre à partir d'un petit nombre, la plupart du matériel ne prends pas de débordement, pas plus qu'elle ne l'est pour le unsigned int. Donc, oui, j'admets qu'il y a peut être un avantage, mais il serait très marginale.