Двоичная арифметика. Стандарт IEEE 754
Institute of Electrical and Electronics Engineers – Институт инженеров по электротехнике и электронике
IEEE 754 (IEC 60559) — стандарт, описывающий формат представления чисел с плавающей точкой
Представление чисел с плавающей точкой
Нормальная и нормализованная формы
Нормальная и нормализованная формы
Нормальная и нормализованная формы
Особые значения чисел
Особые значения чисел
Особые значения чисел
Денормализованные (субнормальные) числа
Денормализованные (субнормальные) числа
Денормализованные (субнормальные) числа
Формальное представление чисел
Формальное представление чисел
Представление чисел в разрядной сетке
Представление чисел в разрядной сетке
Представление чисел в разрядной сетке
Представление чисел в разрядной сетке
Представление чисел в разрядной сетке
Представление чисел в разрядной сетке
Представление чисел в разрядной сетке
Представление чисел в разрядной сетке
Представление чисел в разрядной сетке
Представление чисел в разрядной сетке
Представление чисел в разрядной сетке
Представление чисел в разрядной сетке
Алгоритм записи вещественного числа в памяти ЭВМ
Алгоритм записи вещественного числа в памяти ЭВМ
Алгоритм записи вещественного числа в памяти ЭВМ
Алгоритм записи вещественного числа в памяти ЭВМ
Алгоритм записи вещественного числа в памяти ЭВМ
Алгоритм записи вещественного числа в памяти ЭВМ
Алгоритм записи вещественного числа в памяти ЭВМ
Алгоритм записи вещественного числа в памяти ЭВМ
Алгоритм записи вещественного числа в памяти ЭВМ
Алгоритм записи вещественного числа в памяти ЭВМ
Особенности округления чисел с плавающей запятой
Особенности округления чисел с плавающей запятой
Особенности округления чисел с плавающей запятой
Особенности округления чисел с плавающей запятой
Особенности округления чисел с плавающей запятой
Особенности двоичной арифметики
Особенности числовых констант
366.71K
Category: informaticsinformatics

Двоичная арифметика. Стандарт 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,75910
137,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. Представление чисел в разрядной сетке

Как будет записан «± ноль» в представлении Half
precision?

23. Представление чисел в разрядной сетке

Запись ноля

24. Представление чисел в разрядной сетке

Как будет записана NaN в представлении Half
precision?

25. Представление чисел в разрядной сетке

Запись NaN

26. Представление чисел в разрядной сетке

Как будет записана бесконечность в
представлении 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» в одинарной точности
English     Русский Rules