Содержание
Правила ввода чисел
- Числа в десятичной системе счисления могут вводиться как без дробной, так и с дробной частью ( 234234.455 ).
- Числа в двоичной системе счисления состоят только из цифр 0 и 1 ( 10100.01 ).
- Числа в шестнадцатеричной системе счисления состоят из цифр 0 . 9 и букв A . F .
- Можно также получать обратное представление кода (из шестнадцатеричной системы счисления в десятичную, 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
Число́ полови́нной то́чности (англ. 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
± | Порядок | Мантисса |
Смещение (или сдвиг) порядка: – число, которое необходимо прибавить к истинному порядку исходного числа. Оно записывается в биты поля Порядок. Для формата половинной точности под порядок выделяется 5 бит разрядной сетки, т.е. максимальное смещенное значение порядка – 31.
Формат числа одинарной точности
± | Порядок | Мантисса |
Под порядок выделено 8 бит, поэтому смещение: .
Формат двойной точности
± | Порядок | Мантисса |
Под порядок выделено 11 бит, поэтому смещение: .
Алгоритм получения числа с плавающей точкой
1. Перевести число из K-ичной системы счисления в двоичную (прямой код);
2. Представить двоичной число в нормализованной форме: ;
3. Рассчитать смещенный порядок числа: , где – смещение, зависящее от формата хранения;
4. Разместить знак, порядок и мантиссу в соответствующие разряды сетки;
5. Разбить полученное число на тетрады и записать полученные двоичные разряды в виде числа в 16-ичной системе.
Не нашли то, что искали? Воспользуйтесь поиском:
Лучшие изречения: Для студентов недели бывают четные, нечетные и зачетные. 9636 — | 7524 — или читать все.
91.146.8.87 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.
Отключите adBlock!
и обновите страницу (F5)
очень нужно