qfloat16 Class
Bietet Unterstützung für 16-Bit-Gleitkommazahlen. Mehr...
| Header: | #include <QFloat16> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
qfloat16-Vergleiche
| Kategorie | Vergleichbare Typen | Beschreibung |
|---|---|---|
| teilweise | qfloat16 | |
| teilweise | float, double, long double, qint8, quint8, qint16, quint16, qint32, quint32, long, unsigned long, qint64 und quint64. | |
| partial | qint128 sowie quint128. | Der Vergleich mit 128-Bit-Ganzzahltypen wird nur unterstützt, wenn Qt diese Typen bereitstellt. |
Öffentliche Funktionen
(since 6.1) | qfloat16(Qt::Initialization) |
| bool | isNormal() const |
(since 6.12) qfloat16 & | operator++() |
(since 6.12) qfloat16 | operator++(int) |
(since 6.12) qfloat16 & | operator--() |
(since 6.12) qfloat16 | operator--(int) |
Verwandte Nicht-Mitglieder
(since 6.11) qfloat16 | copysign(qfloat16 x, qfloat16 sign) |
| void | qFloatFromFloat16(float *out, const qfloat16 *in, qsizetype len) |
| void | qFloatToFloat16(qfloat16 *out, const float *in, qsizetype len) |
| int | qFpClassify(qfloat16 val) |
| bool | qFuzzyCompare(qfloat16 p1, qfloat16 p2) |
(since 6.5.3) size_t | qHash(qfloat16 key, size_t seed = 0) |
| bool | qIsFinite(qfloat16 f) |
| bool | qIsInf(qfloat16 f) |
| bool | qIsNaN(qfloat16 f) |
| qint64 | qRound64(qfloat16 value) |
| int | qRound(qfloat16 value) |
(since 6.11) bool | signbit(qfloat16 x) |
(since 6.12) qfloat16 | operator+(qfloat16 a) |
| QDataStream & | operator<<(QDataStream &ds, qfloat16 f) |
| QDataStream & | operator>>(QDataStream &ds, qfloat16 &f) |
Ausführliche Beschreibung
Die Klasse „ qfloat16 “ bietet Unterstützung für Gleitkommadaten mit halber Genauigkeit (16 Bit). Als Speichertyp entspricht sie vollständig dem IEEE-754-Standard. Dies bedeutet, dass bei jeder arithmetischen Operation an einer ` qfloat16 `-Instanz der Wert zunächst in einen ` float`-Wert konvertiert wird. Diese Konvertierung von und zu ` float ` wird nach Möglichkeit von der Hardware durchgeführt; auf Prozessoren, die Halbpräzision nicht nativ unterstützen, erfolgt die Konvertierung jedoch über eine Abfolge von Lookup-Tabellen-Operationen.
qfloat16 sollte so behandelt werden, als handele es sich um einen POD-Typ (plain old data). Folglich bedarf keine der unterstützten Operationen einer näheren Erläuterung, abgesehen von der Feststellung, dass alle für Gleitkommatypen üblichen arithmetischen Operatoren unterstützt werden.
Hinweis: Auf x86- und x86-64-Systemen müssen Sie, um hardwarebeschleunigte Konvertierungen zu erhalten, mit aktiviertem F16C oder AVX2 kompilieren oder die Funktionen ` qFloatToFloat16()` und ` qFloatFromFloat16()` verwenden, die F16C zur Laufzeit erkennen.
Dokumentation der Mitgliedsfunktionen
[explicit noexcept, since 6.1] qfloat16::qfloat16(Qt::Initialization)
Erzeugt einen `qfloat16`-Wert, ohne diesen zu initialisieren.
Diese Funktion wurde in Qt 6.1 eingeführt.
[constexpr noexcept] bool qfloat16::isNormal() const
Gibt „ true “ zurück, wenn dieser Wert „ qfloat16 “ endlich ist und in Normalform vorliegt.
Siehe auch ` qFpClassify()`.
[noexcept, since 6.12] qfloat16 &qfloat16::operator++()
Erhöht diesen Wert um 1 und gibt eine Referenz auf diesen Wert zurück.
Diese Funktion wurde in Qt 6.12 eingeführt.
[noexcept, since 6.12] qfloat16 qfloat16::operator++(int)
Erhöht diesen Wert um 1 und gibt den alten Wert zurück.
Diese Funktion wurde in Qt 6.12 eingeführt.
[noexcept, since 6.12] qfloat16 &qfloat16::operator--()
Verringert diesen Wert um 1 und gibt eine Referenz auf diesen Wert zurück.
Diese Funktion wurde in Qt 6.12 eingeführt.
[noexcept, since 6.12] qfloat16 qfloat16::operator--(int)
Erhöht diesen Wert um 1 und gibt den alten Wert zurück.
Diese Funktion wurde in Qt 6.12 eingeführt.
Verwandte Nicht-Mitglieder
[noexcept, since 6.11] qfloat16 copysign(qfloat16 x, qfloat16 sign)
Gibt einen qfloat16 zurück, dessen Vorzeichen von sign stammt, dessen übriger Wert jedoch von x übernommen wird. Dient als qfloat16-Äquivalent zu std::copysign().
Diese Funktion wurde in Qt 6.11 eingeführt.
Siehe auch signbit().
[noexcept] void qFloatFromFloat16(float *out, const qfloat16 *in, qsizetype len)
Konvertiert „ len “ qfloat16 aus „ in “ in „floats“ und speichert sie in „ out “. Sowohl „ in “ als auch „ out “ müssen über zugewiesene Einträge in „ len “ verfügen.
Diese Funktion ist schneller als die Einzelkonvertierung der Werte und führt auf x86- und x86-64-Hardware eine Laufzeit-F16C-Erkennung durch.
[noexcept] void qFloatToFloat16(qfloat16 *out, const float *in, qsizetype len)
Konvertiert „ len “-Float-Werte aus „ in “ in „qfloat16“ und speichert sie in „ out “. Sowohl „ in “ als auch „ out “ müssen über zugewiesene Einträge in „ len “ verfügen.
Diese Funktion ist schneller als die Einzelkonvertierung der Werte und führt auf x86- und x86-64-Hardware eine F16C-Erkennung zur Laufzeit durch.
[noexcept] int qFpClassify(qfloat16 val)
Gibt die Gleitkommaklasse von „ val “ zurück.
[noexcept] bool qFuzzyCompare(qfloat16 p1, qfloat16 p2)
Vergleicht die Gleitkommawerte p1 und p2 und gibt true zurück, wenn sie als gleich angesehen werden, andernfalls false.
Die beiden Zahlen werden relativ zueinander verglichen, wobei die Genauigkeit umso höher ist, je kleiner die Zahlen sind.
[noexcept, since 6.5.3] size_t qHash(qfloat16 key, size_t seed = 0)
Gibt den Hash-Wert für „ key “ zurück, wobei „ seed “ als Startwert für die Berechnung verwendet wird.
Hinweis: In Qt-Versionen vor 6.5 wurde diese Operation durch die Überladung von `qHash(float)` bereitgestellt. In den Qt-Versionen 6.5.0 bis 6.5.2 war diese Funktionalität in verschiedener Hinsicht fehlerhaft. Ab den Qt-Versionen 6.5.3 und 6.6 stellt diese Überladung das Verhalten von Qt 6.4 wieder her.
Diese Funktion wurde in Qt 6.5.3 eingeführt.
[noexcept] bool qIsFinite(qfloat16 f)
Gibt „true“ zurück, wenn die „ qfloat16 “ f eine endliche Zahl ist.
[noexcept] bool qIsInf(qfloat16 f)
Gibt „true“ zurück, wenn der Wert „ qfloat16 “ ( f ) gleich unendlich ist.
[noexcept] bool qIsNaN(qfloat16 f)
Gibt „true“ zurück, wenn der Wert „ qfloat16 “ f keine Zahl (NaN) ist.
qint64 qRound64(qfloat16 value)
Rundet „ value “ auf die nächste 64-Bit-Ganzzahl.
int qRound(qfloat16 value)
Rundet „ value “ auf die nächste ganze Zahl.
[noexcept, since 6.11] bool signbit(qfloat16 x)
Gibt „true“ zurück, wenn der qfloat16- x -Wert negativ ist, andernfalls „false“. Beachten Sie, dass diese Funktion für negative Null, negatives Unendlich und negative NaN-Werte „true“ zurückgibt.
Diese Funktion wurde in Qt 6.11 eingeführt.
Siehe auch ` copysign()`.
[constexpr noexcept, since 6.12] qfloat16 operator+(qfloat16 a)
Gibt „ a “ unverändert zurück.
Diese Funktion wurde in Qt 6.12 eingeführt.
QDataStream &operator<<(QDataStream &ds, qfloat16 f)
Schreibt eine Gleitkommazahl, f, im Standardformat IEEE 754 in den Stream ds. Gibt eine Referenz auf den Stream zurück.
Hinweis: In Qt-Versionen vor 6.3 war dies eine Memberfunktion von ` QDataStream`.
QDataStream &operator>>(QDataStream &ds, qfloat16 &f)
Liest eine Gleitkommazahl aus dem Stream „ ds “ in „ f “ unter Verwendung des Standardformats IEEE 754 ein. Gibt eine Referenz auf den Stream zurück.
Hinweis: In Qt-Versionen vor 6.3 war dies eine Mitgliedsfunktion von ` QDataStream`.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.