Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Число половинной точности

Из Википедии — свободной энциклопедии

Число́ полови́нной то́чности (англ. 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 кодируют специальные случаи.

Exponent Significand zero Significand non-zero Equation
000002 +0 , −0 число subnormal (−1)signbit × 2−14 × 0.significantbits2
000012, ..., 111102 число normalized (−1)signbit × 2exponent−15 × 1.significantbits2
111112 ±infinity NaN (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 округляется вниз.

Пример пересчета на языке python

data = 31743 #0 11110 1111111111 

sign = data >> 15
mantissa = (data & 0x3FF)
degree = (data >> 10) & 0x1F
result = ((-1) ** sign) * (2 ** (degree-15)) * (1 + mantissa/2**10)

print(result) 

#результат выполнения программы 65504

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

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

См. также

Эта страница в последний раз была отредактирована 26 декабря 2022 в 09:23.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).