Двоичная арифметика_плав_тчк.pptx
- Количество слайдов: 44
Двоичная арифметика. Стандарт IEEE 754 Окладникова С. В.
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 действующих стандартов
IEEE 754 (IEC 60559) — стандарт, описывающий формат представления чисел с плавающей точкой Использование: программные и аппаратные реализации арифметических действий (математических операций) Список стандартов: IEEE 754 -1985; IEEE 754 -1997; IEEE 754 -2008 Стандарт описывает: • формат чисел с плавающей точкой: мантисса, показатель степени, знак числа; • представление положительного и отрицательного нуля, плюс и минус бесконечностей, а также — не числа; • методы, используемые для преобразования числа при выполнении математических операций; • исключительные ситуации: деление на нуль, переполнение, потеря значимости, работа с денормализованными числами и другие; • операции: арифметические и другие
Представление чисел с плавающей точкой Плавающая точка (floating point) - метод представления действительных чисел, при котором число хранится в виде мантиссы и показателя степени Форматы чисел: • половинной точности (half precision) (16 бит) • одинарной точности (single precision) (32 бита) • четверной точности (quadruple precision) (128 бит) • расширенной точности (extended precision) (80 бит)
Нормальная и нормализованная формы Нормальной называется форма представления числа, при которой абсолютное значение мантиссы десятичного числа находится на полуинтервале [0, 1) Пример: 1300010 13000*100 = 1300*101 = 130*102 = 13*103 = 1, 3*104 = 0, 13*105
Нормальная и нормализованная формы Нормализованной называется форма представления числа, при которой абсолютное значение мантиссы десятичного числа находится на полуинтервале [1, 10) Пример: 1300010 13000*100 = 1300*101 = 130*102 = 13*103 = 1, 3*104
Нормальная и нормализованная формы Нормализованной называется форма представления числа, при которой абсолютное значение мантиссы двоичного числа находится на полуинтервале [1, 2) Пример: 1100112 110011*100 = = 1, 10011*105 В нормализованной форме в мантиссе слева от запятой находится ровно один знак 1 – однозначность записи
Особые значения чисел Представление « 0» со знаком • Число считается нулём, если все его биты, кроме знакового, равны нулю. • В зависимости от значения бита знака ноль может быть как положительным, так и отрицательным. Арифметика « 0»
Особые значения чисел Представление неопределенности (Na. N – not a number) • • Na. N является результатом арифметических операций, если во время их выполнения произошла ошибка Na. N - число, в котором все двоичные разряды порядка — единицы, а мантисса не нулевая По определению Na. N ≠ Na. N, для проверки значения переменной нужно просто сравнить ее с собой Любая операция с Na. N возвращает Na. N Арифметика Na. N
Особые значения чисел Представление бесконечности • Все двоичные разряды порядка — единицы, а мантисса равна нулю • Знак бесконечности определяется знаковым битом числа • Получить бесконечность можно при переполнении и при делении ненулевого числа на ноль
Денормализованные (субнормальные) числа Представление числа в денормализованном виде - это способ увеличить количество представимых числом с плавающей запятой значений около нуля для повышения точности вычислений Каждое значение денормализованного числа меньше самого маленького нормализованного ("обычного") значения числа с плавающей запятой 0, 1 ≤ M < 1
Денормализованные (субнормальные) числа Пример: 137, 75910 = 0, 137759*10+3 Пример: 0, 0013775910 = 0, 137759*10 -2
Денормализованные (субнормальные) числа Назначение • Обработка очень маленьких значений чисел • Повышение точности обработки чисел (уменьшение погрешностей) Недостатки • Процессорная обработка денормализованных чисел происходит в десятки раз медленнее, чем обработка нормализованных чисел
Формальное представление чисел • S - бит знака, если S=0 - положительное число; S=1 - отрицательное число • E - смещенная экспонента двоичного нормализованного числа с плавающей точкой, т. е. (2(b-1) - заданное смещение экспоненты • M - остаток мантиссы двоичного нормализованного числа с плавающей точкой
Формальное представление чисел 32 бита 64 бита
Представление чисел в разрядной сетке Число половинной точности (Half precision) компьютерный формат представления чисел, занимающий в памяти половину машинного слова (16 бит) Число д. б. представлено в нормализованном виде Порядок записан со сдвигом 15 Для получения значения порядка нужно вычесть из него сдвиг Сдвиг рассчитывается по формуле 2 b-1 -1 , где b — число бит, отведенное на хранение порядка (b=5).
Представление чисел в разрядной сетке Число половинной точности (Half precision) Ограничения точности
Представление чисел в разрядной сетке Число одинарной точности (Single precision) компьютерный формат представления чисел, занимающий в памяти одно машинное слово (32 бита) Порядок записан со сдвигом 127
Представление чисел в разрядной сетке Число двойной точности (Double precision) компьютерный формат представления чисел, занимающий в памяти два машинных слова (64 бита) Порядок записан со сдвигом 1023
Представление чисел в разрядной сетке Как будет записано число в формате 128 бит (4 машинных слова)
Представление чисел в разрядной сетке Число четвертной точности (Quadruple precision) Порядок сдвига 16383
Представление чисел в разрядной сетке Как будет записан «± ноль» в представлении Half precision?
Представление чисел в разрядной сетке Запись ноля
Представление чисел в разрядной сетке Как будет записана Na. N в представлении Half precision?
Представление чисел в разрядной сетке Запись Na. N
Представление чисел в разрядной сетке Как будет записана бесконечность в представлении Half precision?
Представление чисел в разрядной сетке Запись бесконечности
Алгоритм записи вещественного числа в памяти ЭВМ • перевести модуль числа в двоичную систему счисления • нормализовать двоичное число • прибавить к порядку смещение и перевести смещенный порядок в двоичную систему счисления • учитывая знак заданного числа (0 — положительное; 1 — отрицательное), выписать его представление в памяти ЭВМ
Алгоритм записи вещественного числа в памяти ЭВМ Пример 1: Преобразовать число -312, 312510 для представления его в памяти ЭВМ на примере величины типа Double (двойное слово) 1. Двоичная запись числа -100111000, 0101
Пример 1: Алгоритм записи вещественного числа в памяти ЭВМ 1. Двоичная запись числа -312, 312510 -100111000, 0101
Пример 1: Алгоритм записи вещественного числа в памяти ЭВМ 2. Нормализуем двоичное число 100111000, 0101 = 1, 001110000101*28
Пример 1: Алгоритм записи вещественного числа в памяти ЭВМ 3. Определим смещенный порядок Порядок - 11 разрядов Диапазон от 2 до 1023 Смещение 102310 = 111112 810 + 102310 = 103110 = 100000001112
Пример 1: Алгоритм записи вещественного числа в памяти ЭВМ 4. Запишем представление числа в памяти ЭВМ
Алгоритм записи вещественного числа в памяти ЭВМ Пример 2: Определить число, записанное в памяти ЭВМ
Пример 2: Алгоритм записи вещественного числа в памяти ЭВМ 1. Определим порядок числа 01111102 = 102210 – 102310 = -110
Пример 2: Алгоритм записи вещественного числа в памяти ЭВМ 2. Определим двоичное число 1, 11000112 *2 -1= 0, 111000112
Пример 2: Алгоритм записи вещественного числа в памяти ЭВМ 3. Переведем двоичное число в десятичную систему счисления 0, 111000112 = 0, 8867187510 4. Число - положительное
Особенности округления чисел с плавающей запятой 1. Правило округления «до четного» исходное 33 47 35 округленное 32 48 36
Особенности округления чисел с плавающей запятой 2. Правило округления «к ближайшему целому» исходное 1, 33 1, 35 1, 37 округленное 1 2 2
Особенности округления чисел с плавающей запятой 3. Правило округления «к нулю» исходное 1, 33 1, 35 1, 37 округленное 1, 3
Особенности округления чисел с плавающей запятой 4. Правило округления «к +∞ » исходное округленное 1, 33 1, 35 1, 37 1, 4
Особенности округления чисел с плавающей запятой 5. Правило округления «к -∞» исходное округленное 1, 33 1, 35 1, 37 1, 3
Особенности двоичной арифметики 1. Не ассоциативность арифметических операций (a·b) ·c ≠ a· (b·c)
Особенности числовых констант 2. Не все десятичные числа имеют двоичное представление с плавающей запятой « 0, 2» - « 0, 200000003» в одинарной точности


