Wiem, pytanie wydaje się dziwne. Programiści czasami myślą za dużo. Proszę czytaj dalej ...
W zastosowaniach CI signed
i unsigned
wielu liczbach całkowitych. Podoba mi się fakt, że kompilator ostrzega mnie, gdy robię takie rzeczy, jak przypisywanie liczby całkowitej ze znakiem do zmiennej bez znaku. Otrzymuję ostrzeżenia, jeśli porównam ze znakiem liczb całkowitych bez znaku i wiele więcej.
Podoba mi się te ostrzeżenia. Pomagają mi zachować poprawność kodu.
Dlaczego nie mamy takiego samego luksusu dla spławików? Pierwiastek kwadratowy z pewnością nigdy nie zwróci liczby ujemnej. Są też inne miejsca, w których ujemna wartość zmiennoprzecinkowa nie ma znaczenia. Idealny kandydat na niepodpisany float.
Przy okazji - nie przepadam za tym pojedynczym dodatkowym bitem precyzji, który mógłbym uzyskać, usuwając bit znaku z pływaków. Jestem super zadowolony z tych, float
jakie są teraz. Chciałbym tylko czasami oznaczyć zmiennoprzecinkowy jako niepodpisany i otrzymywać takie same ostrzeżenia, jak w przypadku liczb całkowitych.
Nie znam żadnego języka programowania obsługującego liczby zmiennoprzecinkowe bez znaku.
Masz pojęcie, dlaczego one nie istnieją?
EDYTOWAĆ:
Wiem, że FPU x87 nie ma instrukcji, jak radzić sobie z pływakami bez znaku. Użyjmy po prostu podpisanych instrukcji float. Niewłaściwe użycie (np. Zejście poniżej zera) można uznać za niezdefiniowane zachowanie w taki sam sposób, w jaki przepełnienie liczb całkowitych ze znakiem jest niezdefiniowane.