Similar presentations:
Двоичная арифметика. Стандарт IEEE 754. Формат представления чисел с плавающей точкой
1. Двоичная арифметика. Стандарт IEEE 754
Окладникова С.В.2. Institute of Electrical and Electronics Engineers – Институт инженеров по электротехнике и электронике
Международная ассоциация специалистов в области техники, мировой лидер в областиразработки стандартов по радиоэлектронике, электротехнике и аппаратному обеспечению
вычислительных систем и сетей
Дата основания: 1963 г.
Институт радиотехников ( Institute of Radio Engineers, IRE, 1912 г.)
Американский институт инженеров-электриков (American Institute of
Electrical Engineers, AIEE, 1884 г.)
Цель: информационная и материальная поддержка
специалистов для организации и развития научной
деятельности в электротехнике, электронике, компьютерной
технике и информатике
400 000 индивидуальных членов из 170 стран
Издание 1/3 части мировой технической литературы в области (радиоэлектроники,
компьютеров, систем управления, электротехники)
Проведение более 300 крупных международных конференций в год
Участие в разработке около 900 действующих стандартов
3. IEEE 754 (IEC 60559) — стандарт, описывающий формат представления чисел с плавающей точкой
IEEE 754 (IEC 60559) —стандарт, описывающий формат представления
чисел с плавающей точкой
Использование: программные и аппаратные реализации арифметических
действий (математических операций)
Список стандартов: IEEE 754-1985; IEEE 754-1997; IEEE 754-2008
Стандарт описывает:
• формат чисел с плавающей точкой: мантисса, показатель степени, знак числа;
• представление положительного и отрицательного нуля, плюс и
минус бесконечностей, а также — не числа;
• методы, используемые для преобразования числа при выполнении
математических операций;
• исключительные ситуации: деление на нуль, переполнение, потеря
значимости, работа с денормализованными числами и другие;
• операции: арифметические и другие
4. Представление чисел с плавающей точкой
Плавающая точка (floating point) - метод представления действительныхчисел, при котором число хранится в виде мантиссы и показателя степени
Форматы чисел:
• половинной точности (half precision) (16 бит)
• одинарной точности (single precision) (32 бита)
• четверной точности (quadruple precision) (128 бит)
• расширенной точности (extended precision) (80 бит)
5. Нормальная и нормализованная формы
Нормальной называется форма представления числа, прикоторой абсолютное значение мантиссы десятичного числа
находится на полуинтервале [0,1)
Пример: 1300010
13000*100 = 1300*101 = 130*102 = 13*103 = 1,3*104 = 0,13*105
6. Нормальная и нормализованная формы
Нормализованной называется форма представления числа, прикоторой абсолютное значение мантиссы десятичного числа
находится на полуинтервале [1,10)
Пример: 1300010
13000*100 = 1300*101 = 130*102 = 13*103 = 1,3*104
7. Нормальная и нормализованная формы
Нормализованной называется форма представления числа, прикоторой абсолютное значение мантиссы двоичного числа
находится на полуинтервале [1,2)
Пример: 1100112
110011*100 = = 1,10011*105
В нормализованной форме в мантиссе слева от запятой
находится ровно один знак 1 – однозначность записи
8. Особые значения чисел
Представление «0» сознаком
• Число считается нулём,
если все его биты, кроме
знакового, равны нулю.
• В зависимости от
значения бита знака
ноль может быть как
положительным, так и
отрицательным.
Арифметика «0»
9. Особые значения чисел
Представление неопределенности (NaN – not a number)NaN является результатом
арифметических операций, если во
время их выполнения произошла
ошибка
NaN - число, в котором все двоичные
разряды порядка — единицы, а
мантисса не нулевая
По определению NaN ≠ NaN, для
проверки значения переменной нужно
просто сравнить ее с собой
Любая операция с NaN возвращает
NaN
Арифметика NaN
10. Особые значения чисел
Представление бесконечности• Все двоичные разряды порядка — единицы, а мантисса равна
нулю
• Знак бесконечности определяется знаковым битом числа
• Получить бесконечность можно при переполнении и при
делении ненулевого числа на ноль
11. Денормализованные (субнормальные) числа
Представление числа в денормализованном виде - этоспособ увеличить количество представимых числом с
плавающей запятой значений около нуля для
повышения точности вычислений
Каждое значение денормализованного числа меньше
самого маленького нормализованного ("обычного")
значения числа с плавающей запятой
0,1 ≤ M < 1
12. Денормализованные (субнормальные) числа
Пример: 137,75910137,75910 = 0,137759*10+3
Пример: 0,0013775910
0,0013775910 = 0,137759*10-2
13. Денормализованные (субнормальные) числа
Назначение• Обработка очень маленьких значений чисел
• Повышение точности обработки чисел (уменьшение
погрешностей)
Недостатки
• Процессорная обработка денормализованных чисел
происходит в десятки раз медленнее, чем обработка
нормализованных чисел
14. Формальное представление чисел
• S - бит знака, если S=0 - положительное число; S=1 - отрицательное число• E - смещенная экспонента двоичного нормализованного числа с
плавающей точкой, т.е. (2(b-1) -1) - заданное смещение экспоненты
• M - остаток мантиссы двоичного нормализованного числа с плавающей
точкой
15. Формальное представление чисел
32 бита64 бита
16. Представление чисел в разрядной сетке
Число половинной точности (Half precision)компьютерный формат представления чисел, занимающий в памяти
половину машинного слова (16 бит)
Число д.б. представлено в нормализованном виде
Порядок записан со сдвигом 15
Для получения значения порядка нужно
вычесть из него сдвиг
Сдвиг рассчитывается по формуле 2b-1-1 ,
где b — число бит, отведенное на хранение
порядка (b=5).
17. Представление чисел в разрядной сетке
Число половинной точности (Half precision)Ограничения точности
18. Представление чисел в разрядной сетке
Число одинарной точности (Single precision)компьютерный формат представления чисел, занимающий
в памяти одно машинное слово (32 бита)
Порядок записан со сдвигом 127
19. Представление чисел в разрядной сетке
Число двойной точности (Double precision)компьютерный формат представления чисел, занимающий
в памяти два машинных слова (64 бита)
Порядок записан со сдвигом 1023
20. Представление чисел в разрядной сетке
Как будет записано число в формате 128 бит (4машинных слова)
21. Представление чисел в разрядной сетке
Число четвертной точности (Quadruple precision)Порядок сдвига 16383
22. Представление чисел в разрядной сетке
Как будет записан «± ноль» в представлении Halfprecision?
23. Представление чисел в разрядной сетке
Запись ноля24. Представление чисел в разрядной сетке
Как будет записана NaN в представлении Halfprecision?
25. Представление чисел в разрядной сетке
Запись NaN26. Представление чисел в разрядной сетке
Как будет записана бесконечность впредставлении Half precision?
27. Представление чисел в разрядной сетке
Запись бесконечности28. Алгоритм записи вещественного числа в памяти ЭВМ
• перевести модуль числа в двоичную систему счисления• нормализовать двоичное число
• прибавить к порядку смещение и перевести смещенный
порядок в двоичную систему счисления
• учитывая знак заданного числа (0 — положительное; 1 —
отрицательное), выписать его представление в памяти
ЭВМ
29. Алгоритм записи вещественного числа в памяти ЭВМ
Пример 1: Преобразовать число -312,312510 дляпредставления его в памяти ЭВМ на примере величины
типа Double (двойное слово)
1. Двоичная запись числа
-100111000,0101
30. Алгоритм записи вещественного числа в памяти ЭВМ
Пример 1:1. Двоичная запись числа -312,312510
-100111000,0101
31. Алгоритм записи вещественного числа в памяти ЭВМ
Пример 1:2. Нормализуем двоичное число
100111000,0101 = 1,001110000101*28
32. Алгоритм записи вещественного числа в памяти ЭВМ
Пример 1:Алгоритм записи вещественного
числа в памяти ЭВМ
3. Определим смещенный порядок
Порядок - 11 разрядов
Диапазон от 2 до 1023
Смещение 102310 = 11111111112
810 + 102310 = 103110 = 100000001112
33. Алгоритм записи вещественного числа в памяти ЭВМ
Пример 1:Алгоритм записи вещественного
числа в памяти ЭВМ
4. Запишем представление числа в памяти
ЭВМ
34. Алгоритм записи вещественного числа в памяти ЭВМ
Пример 2: Определить число, записанное в памяти ЭВМ35. Алгоритм записи вещественного числа в памяти ЭВМ
Пример 2:Алгоритм записи вещественного
числа в памяти ЭВМ
1. Определим порядок числа
011111111102 = 102210
102210 – 102310 = -110
36. Алгоритм записи вещественного числа в памяти ЭВМ
Пример 2:Алгоритм записи вещественного
числа в памяти ЭВМ
2. Определим двоичное число
1,11000112 *2-1= 0, 111000112
37. Алгоритм записи вещественного числа в памяти ЭВМ
Пример 2:Алгоритм записи вещественного
числа в памяти ЭВМ
3. Переведем двоичное число в десятичную
систему счисления
0,111000112 = 0,8867187510
4. Число - положительное
38. Особенности округления чисел с плавающей запятой
1. Правило округления «до четного»исходное
33
47
35
округленное
32
48
36
39. Особенности округления чисел с плавающей запятой
2. Правило округления «к ближайшемуцелому»
исходное
1,33
1,35
1,37
округленное
1
2
2
40. Особенности округления чисел с плавающей запятой
3. Правило округления «к нулю»исходное
1,33
1,35
1,37
округленное
1,3
1,3
1,3
41. Особенности округления чисел с плавающей запятой
4. Правило округления «к +∞»исходное
1,33
1,35
1,37
округленное
1,4
1,4
1,4
42. Особенности округления чисел с плавающей запятой
5. Правило округления «к -∞»исходное
1,33
1,35
1,37
округленное
1,3
1,3
1,3
43. Особенности двоичной арифметики
1. Не ассоциативность арифметическихопераций
(a·b) ·c ≠ a· (b·c)
44. Особенности числовых констант
2. Не все десятичные числа имеютдвоичное представление с плавающей
запятой
«0,2» - «0,200000003» в одинарной точности