qfloat16 Class

16비트 부동 소수점 지원을 제공합니다. 더 보기...

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

이 클래스는 부분적으로 유사합니다.

이 클래스는 float, double, long double, qint8, quint8, qint16, quint16, qint32, quint32, long, 부호 없는 long, qint64, quint64부분적으로 유사합니다.

이 클래스는 qint128quint128부분적으로 유사합니다.

128비트 적분형과의 비교는 Qt가 이러한 형을 제공하는 경우에만 지원됩니다.

공용 함수

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

자세한 설명

qfloat16 클래스는 반정밀도(16비트) 부동 소수점 데이터를 지원합니다. 이 클래스는 저장 유형으로서 IEEE 754를 완벽하게 준수합니다. 이는 qfloat16 인스턴스에 대한 모든 산술 연산이 먼저 값을 float 로 변환한다는 것을 의미합니다. float 로의 변환은 가능한 경우 하드웨어에서 수행되지만 반정밀을 기본적으로 지원하지 않는 프로세서에서는 일련의 룩업 테이블 연산을 통해 변환이 수행됩니다.

qfloat16 는 POD(일반 데이터) 유형인 것처럼 취급해야 합니다. 따라서 지원되는 연산 중 어느 것도 부동 소수점 유형에 부수되는 모든 산술 연산자를 지원한다고 명시하는 것 이상의 자세한 설명이 필요하지 않습니다.

참고: x86 및 x86-64에서 하드웨어 가속 변환을 얻으려면 F16C 또는 AVX2를 활성화한 상태로 컴파일하거나 런타임에 F16C를 감지하는 qFloatToFloat16() 및 qFloatFromFloat16()를 사용해야 합니다.

멤버 함수 문서

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

값을 초기화하지 않고 qfloat16을 구축합니다.

이 함수는 Qt 6.1에 도입되었습니다.

[noexcept] qfloat16 qfloat16::copySign(qfloat16 sign) const

부호가 sign 이지만 나머지 값은 이 qfloat16에서 가져온 qfloat16을 반환합니다. qfloat16의 std::copysign()에 해당하는 역할을 합니다.

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

qfloat16 값이 유한하고 일반 형식인 경우 true 을 반환합니다.

qFpClassify()도 참조하세요 .

관련 비회원

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

len qfloat16을 in 에서 floats로 변환하여 out 에 저장합니다. inout 모두 len 할당된 항목이 있어야 합니다.

이 함수는 값을 하나씩 변환하는 것보다 빠르며 x86 및 x86-64 하드웨어에서 런타임 F16C 감지를 수행합니다.

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

len 부동 소수점을 in 에서 qfloat16으로 변환하여 out 에 저장합니다. inout 모두 len 할당된 항목이 있어야 합니다.

이 함수는 값을 하나씩 변환하는 것보다 빠르며, x86 및 x86-64 하드웨어에서 런타임 F16C 감지를 수행합니다.

[noexcept] int qFpClassify(qfloat16 val)

이 함수는 qFpClassify(float)를 오버로드합니다.

val 의 부동소수점 클래스를 반환합니다.

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

이 함수는 qFuzzyCompare(float, float)를 오버로드합니다.

부동 소수점 값 p1p2 을 비교하여 같다고 판단되면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

두 숫자는 상대적인 방식으로 비교되며, 숫자가 작을수록 정확성이 더 강해집니다.

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

seed 을 사용하여 key 에 대한 해시값을 반환합니다.

참고: 6.5 이전 Qt 버전에서는 이 연산이 qHash(float) 오버로드를 통해 제공되었습니다. Qt 버전 6.5.0~6.5.2에서는 이 기능이 여러 가지 방식으로 중단되었습니다. Qt 버전 6.5.3과 6.6 이후에서는 이 오버로드가 Qt 6.4의 동작을 복원합니다.

이 기능은 Qt 6.5.3에 도입되었습니다.

[noexcept] bool qIsFinite(qfloat16 f)

이 함수는 qIsFinite(float)를 오버로드합니다.

qfloat16 f 이 유한 숫자인 경우 참을 반환합니다.

[noexcept] bool qIsInf(qfloat16 f)

이 함수는 qIsInf(float)를 오버로드합니다.

qfloat16 f 이 무한대와 같으면 참을 반환합니다.

[noexcept] bool qIsNaN(qfloat16 f)

이 함수는 qIsNaN(float)를 오버로드합니다.

qfloat16 f 이 숫자(NaN)가 아닌 경우 참을 반환합니다.

[noexcept] qint64 qRound64(qfloat16 value)

이 함수는 qRound64(float)에 과부하가 걸립니다.

value 을 가장 가까운 64비트 정수로 반올림합니다.

[noexcept] int qRound(qfloat16 value)

이 함수는 qRound(float)에 과부하가 걸립니다.

value 을 가장 가까운 정수로 반올림합니다.

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

표준 IEEE 754 형식을 사용하여 ds 스트림에 부동 소수점 숫자 f 를 씁니다. 스트림에 대한 참조를 반환합니다.

참고: 6.3 이전 Qt 버전에서는 QDataStream 의 멤버 함수였습니다.

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

표준 IEEE 754 형식을 사용하여 ds 스트림에서 f 으로 부동 소수점 숫자를 읽습니다. 스트림에 대한 참조를 반환합니다.

참고: 6.3 이전 Qt 버전에서는 QDataStream 의 멤버 함수였습니다.

© 2025 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.