WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Число́ полови́нной то́чности (англ. half precision) — компьютерный формат представления чисел, занимающий в памяти половину компьютерного слова (в случае 32-битного компьютера — 16 бит или 2 байта). Диапазон значений ± 2−24(5.96E-8) — 65504. Приблизительная точность — 3 знака (10 двоичных знаков, log10(211)).

Знак
Экспо-
нента
Мантисса
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 8 7 0

Кодирование поля Exponent

Числа half-precision binary floating-point кодируют поле Exponent с использованием сдвига (bias) на 15.

  • Emin = 000012 − 011112 = −14
  • Emax = 111102 − 011112 = 15
  • Exponent bias = 011112 = 15

Другими словами, для получения настоящего порядка (для Exponent от 000012 до 111102) надо из закодированного поля Exponent вычесть 15 (т.е. 011112).

С помощью значений 000002 и 111112 поля Exponent кодируют специальные случаи.

ExponentSignificand zeroSignificand non-zeroEquation
000002+0 , −0число subnormal(−1)signbit × 2−14 × 0.significantbits2
000012, ..., 111102число normalized(−1)signbit × 2exponent−15 × 1.significantbits2
111112±infinityNaN (quiet, signalling)

Минимальное точное (subnormal) положительное значение = 2−24 ≈ 5.96 × 10−8.

Минимальное (normal) положительное значение = 2−14 ≈ 6.10 × 10−5.

Максимальное представляемое значение = (2−2−10) × 215 = 65504.

Примеры чисел половинной точности

В данных примерах числа с плавающей запятой представлены в двоичном представлении. Они включают в себя бит знака, экспоненту и мантиссу.

0 01111 0000000000  = +1 * 215-15 = 1
0 01111 0000000001  = +1.00000000012 * 215-15=1 + 2-10 = 1.0009765625 (следующее большее число после 1)
1 10000 0000000000  = -1 * 216-15 = −2

0 11110 1111111111  = 65504  

0 00001 0000000000  = 2−14 ≈ 6.10352 × 10−5 (Минимальное нормальное положительное число)
0 00000 1111111111  = 2-14 - 2-24 ≈ 6.09756 × 10−5 (Максимальное денормализованное)
0 00000 0000000001  = 2−24 ≈ 5.96046 × 10−8 (Минимальное положительное денормализованное)

0 00000 0000000000  = 0
1 00000 0000000000  = −0

0 11111 0000000000  = infinity
1 11111 0000000000  = −infinity

0 01101 0101010101  ≈ 0.33325... ≈ 1/3 

По умолчанию, 1/3 округляется вниз.

Пределы точности на целых числах

Целые между 0 и 2047 представляются точно
Целые между 2048 и 4095 округляются вниз до ближайшего кратному 2 (четному числу)
Целые между 4096 и 8191 округляются вниз до ближайшего кратному 4
Целые между 8192 и 16383 округляются вниз до ближайшего кратному 8
Целые между 16384 и 32767 округляются вниз до ближайшего кратному 16
Целые между 32768 и 65535 округляются вниз до ближайшего кратному 32

См. также

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии