이 페이지에서

qfloat16 Class

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

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

qfloat16 비교 연산

범주비교 가능한 유형설명
부분qfloat16
부분float, double, long double, qint8, quint8, qint16, quint16, qint32, quint32, long, unsigned long, qint64 및 quint64.
partialqint128 및 quint128.128비트 정수형과의 비교는 Qt에서 이러한 유형을 제공하는 경우에만 지원됩니다.

공개 함수

(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)
(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)

자세한 설명

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

qfloat16 는 마치 POD(plain old data) 유형인 것처럼 취급되어야 합니다. 따라서 지원되는 연산 중 어느 것도 부동 소수점 유형에 수반되는 모든 산술 연산자를 지원한다는 점 외에 별도의 설명이 필요하지 않습니다.

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

멤버 함수 문서

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

값을 초기화하지 않고 qfloat16을 생성합니다.

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

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

이 qfloat16 값이 유한하고 정상형일 경우 true 를 반환합니다.

qFpClassify()도 참조하십시오 .

[noexcept, since 6.12] qfloat16 &qfloat16::operator++()

이 값을 1 증가시킨 후, 해당 값에 대한 참조를 반환합니다.

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

[noexcept, since 6.12] qfloat16 qfloat16::operator++(int)

이 값을 1 증가시킨 후, 이전 값을 반환합니다.

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

[noexcept, since 6.12] qfloat16 &qfloat16::operator--()

이 값을 1만큼 미리 감소시킨 후, 이 값에 대한 참조를 반환합니다.

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

[noexcept, since 6.12] qfloat16 qfloat16::operator--(int)

이 값을 1 감소시킨 후 이전 값을 반환합니다.

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

관련 비회원 변수

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

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

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

signbit()도 참조하십시오 .

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

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

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

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

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

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

[noexcept] int qFpClassify(qfloat16 val)

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

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

p1 와 p2 라는 부동소수점 값을 비교하여, 두 값이 같다고 판단되면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

두 수는 상대적인 방식으로 비교되며, 수치가 작을수록 정확도가 높아집니다.

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

seed 를 시드로 사용하여 key 의 해시 값을 반환합니다.

참고: Qt 6.5 이전버전에서는 이 작업이 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)

qfloat16 f 가 유한한 수인 경우 true를 반환합니다.

[noexcept] bool qIsInf(qfloat16 f)

qfloat16 f 가 무한대와 같을 경우 true를 반환합니다.

[noexcept] bool qIsNaN(qfloat16 f)

qfloat16 f 가 숫자가 아닌 경우(NaN) true를 반환합니다.

qint64 qRound64(qfloat16 value)

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

int qRound(qfloat16 value)

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

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

qfloat16 x 이 음수인 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다. 이 함수는 음의 0, 음의 무한대 및 음의 NaN 값에 대해서도 true를 반환한다는 점에 유의하십시오.

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

copysign()도 참조하십시오 .

[constexpr noexcept, since 6.12] qfloat16 operator+(qfloat16 a)

a 를 변경하지 않고 반환합니다.

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

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

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

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

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

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

참고: Qt 6.3 이전버전에서는 이 함수가 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.