2013-04-03 12 views

Odpowiedz

16

Punkt 18.3.2.4 z C++ 11 Określono:

static constexpr T min() noexcept;

1 Minimalna wartość skończona.

2 Dla typów zmiennoprzecinkowych z denormalizacją zwraca minimalną dodatnią znormalizowaną wartość.

3 znaczące dla wszystkich kierunków

[...]

static constexpr T lowest() noexcept;

6 Skończona wartość x taka, że ​​nie ma innej skończonej wartości y, gdzie y < x.

7 Znaczenie dla wszystkich specjalizacji, w których is_bounded! = False.

Przypis 197 następnie dodaje odpowiednią uwaga:

lowest() jest konieczne, ponieważ nie wszystkie reprezentacje zmiennoprzecinkowe mają najmniejszą wartość (najbardziej negatywny), który jest negatywny z największych (najbardziej pozytywny) skończona wartość.

+1

+1, aby podać dokładny cytat ze standardu w mniej niż 5 minut. – Morwenn

+0

w innym słowie "najniższy" zwraca coś podobnego do uzupełnienia 2s dla maksymalnej liczby całkowitej dodatniej. –

+1

@Muhammadalaa: dla typów całkowitych nie ma różnicy między 'min()' a 'najniższym()'. –

8

do unoszenia rodzajów punktów min zwraca najmniejszą skończoną liczbę nie > 0 zakodowania w rodzaju (liczba o najniższej wartości bezwzględnej != 0) podczas lowest powraca najmniejsza skończoną liczbę, która jest zakodowania (tj ujemna liczba maksymalna bezwzględna wartość mniejsza niż -infinity).

+1

Najmniejsza reprezentowana liczba to nieskończoność ujemna; "najniższy" daje najmniejszą ** skończoną ** reprezentowalną wartość. –

+0

Edytowane, dziękuję za komentarz. – filmor

Powiązane problemy