Меню Закрыть

Число в формате половинной точности

Содержание

Правила ввода чисел

  1. Числа в десятичной системе счисления могут вводиться как без дробной, так и с дробной частью ( 234234.455 ).
  2. Числа в двоичной системе счисления состоят только из цифр 0 и 1 ( 10100.01 ).
  3. Числа в шестнадцатеричной системе счисления состоят из цифр 0 . 9 и букв A . F .
  4. Можно также получать обратное представление кода (из шестнадцатеричной системы счисления в десятичную, 40B00000 )

Пример №2 . Представить двоичное число 101.102 в нормализованном виде, записать в 32-битом стандарте IEEE754.
Решение.
Представление двоичного числа с плавающей точкой в экспоненциальном нормализованном виде.
Сдвинем число на 2 разрядов вправо. В результате мы получили основные составляющие экспоненциального нормализованного двоичного числа:
Мантисса M=1.011
Экспонента exp2=2
Преобразование двоичного нормализованного числа в 32 битный формат IEEE 754.
Первый бит отводится для обозначения знака числа. Поскольку число положительное, то первый бит равен 0
Следующие 8 бит (с 2-го по 9-й) отведены под экспоненту.
Для определения знака экспоненты, чтобы не вводить ещё один бит знака, добавляют смещение к экспоненте в половину байта +127. Таким образом, наша экспонента: 2 + 127 = 129
Переведем экспоненту в двоичное представление.
Оставшиеся 23 бита отводят для мантиссы. У нормализованной двоичной мантиссы первый бит всегда равен 1, так как число лежит в диапазоне 1 ≤ M 22 *0 + 2 21 *1 + 2 20 *1 + 2 19 *0 + 2 18 *0 + 2 17 *0 + 2 16 *0 + 2 15 *0 + 2 14 *0 + 2 13 *0 + 2 12 *0 + 2 11 *0 + 2 10 *0 + 2 9 *0 + 2 8 *0 + 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *0 + 2 1 *0 + 2 0 *0 = 0 + 2097152 + 1048576 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 3145728
В десятичном коде мантисса выражается числом 3145728
В результате число 101.10 представленное в IEEE 754 c одинарной точностью равно 01000000101100000000000000000000.
Переведем в шестнадцатеричное представление.
Разделим исходный код на группы по 4 разряда.
010000001011000000000000000000002 = 0100 0000 1011 0000 0000 0000 0000 0000 2
Получаем число:
0100 0000 1011 0000 0000 0000 0000 0000 2 = 40B0000016

Читайте также:  Самые маленькие дистрибутивы linux

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

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

Содержание

Кодирование поля Exponent [ править | править код ]

Числа half-precision binary floating-point кодируют поле Exponent с использованием сдвига (bias) на 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 × 2 exponent−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 ) × 2 15 = 65504.

Примеры чисел половинной точности [ править | править код ]

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

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

Пределы точности на целых числах [ править | править код ]

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

Читайте также:  Смонтируйте образ диска в программе daemon tools
± Порядок Мантисса

Смещение (или сдвиг) порядка: – число, которое необходимо прибавить к истинному порядку исходного числа. Оно записывается в биты поля Порядок. Для формата половинной точности под порядок выделяется 5 бит разрядной сетки, т.е. максимальное смещенное значение порядка – 31.

Формат числа одинарной точности

± Порядок Мантисса

Под порядок выделено 8 бит, поэтому смещение: .

Формат двойной точности

± Порядок Мантисса

Под порядок выделено 11 бит, поэтому смещение: .

Алгоритм получения числа с плавающей точкой

1. Перевести число из K-ичной системы счисления в двоичную (прямой код);

2. Представить двоичной число в нормализованной форме: ;

3. Рассчитать смещенный порядок числа: , где – смещение, зависящее от формата хранения;

4. Разместить знак, порядок и мантиссу в соответствующие разряды сетки;

5. Разбить полученное число на тетрады и записать полученные двоичные разряды в виде числа в 16-ичной системе.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Для студентов недели бывают четные, нечетные и зачетные. 9636 — | 7524 — или читать все.

91.146.8.87 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.