En esta página

qfloat16 Class

Proporciona soporte para coma flotante de 16 bits. Más...

Cabecera: #include <QFloat16>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Esta clase es parcialmente comparable.

Esta clase es parcialmente comparable con float, double, long double, qint8, quint8, qint16, quint16, qint32, quint32, long, unsigned long, qint64, y quint64.

Esta clase es parcialmente comparable con qint128 y quint128.

La comparación con tipos integrales de 128 bits sólo está soportada si Qt proporciona estos tipos.

Funciones públicas

(since 6.1) qfloat16(Qt::Initialization)
bool isNormal() const
(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)
QDataStream &operator<<(QDataStream &ds, qfloat16 f)
QDataStream &operator>>(QDataStream &ds, qfloat16 &f)

Descripción Detallada

La clase qfloat16 proporciona soporte para datos de coma flotante de media precisión (16 bits). Es totalmente compatible con IEEE 754 como tipo de almacenamiento. Esto implica que cualquier operación aritmética en una instancia de qfloat16 hace que el valor se convierta primero a float. Esta conversión a y desde float se realiza por hardware cuando es posible, pero en procesadores que no soportan de forma nativa la media precisión, la conversión se realiza mediante una secuencia de operaciones de tabla de consulta.

qfloat16 debe tratarse como si fuera un tipo POD (plain old data). En consecuencia, ninguna de las operaciones soportadas necesita elaboración alguna más allá de indicar que soporta todos los operadores aritméticos incidentes en los tipos de coma flotante.

Nota: En x86 y x86-64 para obtener conversiones aceleradas por hardware debe compilar con F16C o AVX2 activado, o utilizar qFloatToFloat16() y qFloatFromFloat16() que detectarán F16C en tiempo de ejecución.

Documentación de las funciones miembro

[explicit noexcept, since 6.1] qfloat16::qfloat16(Qt::Initialization)

Construye un qfloat16 sin inicializar el valor.

Esta función se introdujo en Qt 6.1.

[constexpr noexcept] bool qfloat16::isNormal() const

Devuelve true si este valor qfloat16 es finito y está en forma normal.

Véase también qFpClassify().

No miembros relacionados

[noexcept, since 6.11] qfloat16 copysign(qfloat16 x, qfloat16 sign)

Devuelve un qfloat16 con el signo de sign pero el resto de su valor tomado de x. Sirve como equivalente de qfloat16 de std::copysign().

Esta función se introdujo en Qt 6.11.

Véase también signbit().

[noexcept] void qFloatFromFloat16(float *out, const qfloat16 *in, qsizetype len)

Convierte len qfloat16 de in a floats y los almacena en out. Tanto in como out deben tener entradas asignadas len.

Esta función es más rápida que convertir los valores uno a uno, y hará la detección F16C en tiempo de ejecución en hardware x86 y x86-64.

[noexcept] void qFloatToFloat16(qfloat16 *out, const float *in, qsizetype len)

Convierte len floats de in a qfloat16 y los almacena en out. Tanto in como out deben tener len entradas asignadas.

Esta función es más rápida que convertir los valores uno a uno, y realizará la detección F16C en tiempo de ejecución en hardware x86 y x86-64.

[noexcept] int qFpClassify(qfloat16 val)

Devuelve la clase de punto flotante de val.

[noexcept] bool qFuzzyCompare(qfloat16 p1, qfloat16 p2)

Compara el valor en coma flotante p1 y p2 y devuelve true si se consideran iguales, en caso contrario false.

Los dos números se comparan de forma relativa, donde la exactitud es mayor cuanto más pequeños son los números.

[noexcept, since 6.5.3] size_t qHash(qfloat16 key, size_t seed = 0)

Devuelve el valor hash para key, usando seed para sembrar el cálculo.

Nota: En versiones de Qt anteriores a la 6.5, esta operación era proporcionada por la sobrecarga qHash(float). En las versiones de Qt 6.5.0 a 6.5.2, esta funcionalidad se rompió de varias maneras. En las versiones de Qt 6.5.3 y 6.6 en adelante, esta sobrecarga restaura el comportamiento de Qt 6.4.

Esta función se introdujo en Qt 6.5.3.

[noexcept] bool qIsFinite(qfloat16 f)

Devuelve true si el qfloat16 f es un número finito.

[noexcept] bool qIsInf(qfloat16 f)

Devuelve verdadero si qfloat16 f es equivalente a infinito.

[noexcept] bool qIsNaN(qfloat16 f)

Devuelve true si el qfloat16 f no es un número (NaN).

qint64 qRound64(qfloat16 value)

Redondea value al entero de 64 bits más próximo.

int qRound(qfloat16 value)

Redondea value al número entero más próximo.

[noexcept, since 6.11] bool signbit(qfloat16 x)

Devuelve true si qfloat16 x es negativo, false en caso contrario. Tenga en cuenta que esta función devuelve true para cero negativo, infinito negativo y valores NaN negativos.

Esta función se introdujo en Qt 6.11.

Véase también copysign().

QDataStream &operator<<(QDataStream &ds, qfloat16 f)

Escribe un número en coma flotante, f, en el flujo ds utilizando el formato estándar IEEE 754. Devuelve una referencia al flujo.

Nota: En versiones de Qt anteriores a la 6.3, ésta era una función miembro de QDataStream.

QDataStream &operator>>(QDataStream &ds, qfloat16 &f)

Lee un número en coma flotante del flujo ds en f, utilizando el formato estándar IEEE 754. Devuelve una referencia al flujo.

Nota: En versiones de Qt anteriores a la 6.3, ésta era una función miembro de 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.