2013-04-03 8 views

Antwort

16

Absatz 18.3.2.4 der Norm legt 11 ++ C:

static constexpr T min() noexcept;

1 Minimaler endlicher Wert.

2 Gibt für Floating-Typen mit Denormalisierung den minimalen positiven normalisierten Wert zurück.

3 Bedeutungsvolles für alle Spezialisierungen

[...]

static constexpr T lowest() noexcept;

6 Ein endlicher Wert x, so dass es keinen anderen endlichen Wert y gibt, wo y < x.

7 Sinnvoll für alle Spezialisierungen, in denen is_bounded! = False ist.

Fußnote 197 fügt dann die entsprechende Bemerkung:

lowest() notwendig ist, weil nicht alle Gleitkommadarstellungen einen kleinsten (negativsten) Wert haben, der die negativ der größten (positivsten) ist endlicher Wert.

+1

+1 für genaue Zitat aus dem Standard in weniger als 5 Minuten. – Morwenn

+0

in einem anderen Wort "niedrigste" zurück etwas wie das 2s Komplement für maximale positive ganze Zahl. –

+1

@Muhammala: Für ganzzahlige Typen gibt es keinen Unterschied zwischen 'min()' und 'lowest()'. –

8

Für Punkt Typen floating min die kleinste endliche Zahl zurückgibt, die > 0 darstellbare in dem Typ ist (dh die Anzahl der niedrigsten Absolutwert != 0) während lowest gibt den kleinsten finite Zahl, repräsentierbar ist (dh der negative Zahl der maximalen absoluten Wert, der kleiner als -infinity ist).

+1

Die kleinste darstellbare Zahl ist negativ unendlich; "niedrigste" gibt den kleinsten ** endlichen ** darstellbaren Wert an. –

+0

Bearbeitet, danke für den Kommentar. – filmor

Verwandte Themen