web-dev-qa-db-fra.com

Double non signé en C ++?

Pourquoi C++ ne prend-il pas en charge la double syntaxe non signée?

63
lost3den

Parce que les formats à virgule flottante typiques ne prennent pas en charge les nombres non signés. Voir, par exemple, cette liste de formats IEEE 754 .

L'ajout d'un format numérique qui n'est pas pris en charge par le matériel courant rend la vie difficile aux rédacteurs de compilateurs et n'est probablement pas considéré comme valant la peine.

68
unwind

C++ ne prend pas en charge les types à virgule flottante non signés car la plupart du matériel à virgule flottante ne prend pas en charge les types à virgule flottante non signés. Certaines cartes graphiques fonctionnent avec des virgules flottantes non signées, mais elles sont généralement internes, pas vraiment visibles pour un programme ou un utilisateur.

14
Jerry Coffin

Les entiers non signés gagnent un peu plus de précision et ont une sémantique bit à bit légèrement différente des entiers signés. Les flottants et les doubles réservent toujours un peu pour le signe (sur la plupart du matériel) et n'ont pas de sémantique au niveau du bit, il n'y a donc aucun avantage réel à avoir un type réel non signé.

7
Marcelo Cantos