
- •Введение
- •Системы счисления и представление данных
- •Числа конечной точности
- •Системы счисления
- •Преобразование чисел из одной системы счисления в другую
- •Правило замещения
- •Правило деления-умножения
- •Правило деления
- •Правило умножения
- •Упрощенные правила
- •Двоичная арифметика
- •Отрицательные двоичные числа
- •Сложение двоичных чисел
- •Числа с плавающей точкой
- •Принципы представления с плавающей точкой
- •Округление чисел
- •Стандарт ieee 754
- •Организация компьютерных систем
- •Архитектура и структура вычислительных машин
- •Языки, уровни и виртуальные машины
- •Компиляция
- •Интерпретация
- •Виртуальные машины
- •Многоуровневые машины
- •Многоуровневая организация компьютеров
- •Уровень 0
- •Уровень 1
- •Уровень 2
- •Уровень 3
- •Уровень 4
- •Уровень 5
- •Аппаратное и программное обеспечение
- •Структура компьютера
- •Организация памяти вычислительных машин
- •Адреса основной памяти
- •Упорядочение байтов
- •Цифровой логический уровень
- •Вентили и булева алгебра
- •Вентили
- •Булева алгебра
- •Реализация булевых функций
- •Основные цифровые логические схемы
- •Интегральные схемы
- •Комбинационные схемы
- •Мультиплексоры
- •Декодеры
- •Компараторы
- •Арифметические схемы Схемы сдвига
- •Сумматоры
- •Арифметико-логические устройства
- •Тактовые генераторы
- •Защелки
- •Синхронные sr-защелки
- •Синхронные d-защелки
- •Триггеры
- •Регистры
- •Организация большого объема памяти
- •Микроархитектурный уровень
- •Пример микроархитектуры: организация
- •Поток управления
- •Последовательный поток управления и переходы
- •Процедуры
- •Модель памяти
- •Набор команд
- •Пример микроархитектуры: управление микрокомандами
- •Тракт данных
- •Синхронизация тракта данных
- •Работа памяти
- •Микрокоманды
- •Управление микрокомандами
- •Уровень архитектуры команд
- •Уровень команд процессора Pentium II
- •Регистры
- •Выравнивание адресов
- •Типы данных
- •Форматы команд
- •Адресация
- •Непосредственная адресация
- •Прямая адресация
- •Регистровая адресация
- •Косвенная регистровая адресация
- •Базовая адресация
- •Индексная адресация
- •Команды процессора Pentium II
- •Команды перемещения
- •Арифметические команды
- •Двоично-десятичные команды
- •Логические команды
- •Команды сдвига/циклического сдвига
- •Команды тестирования/сравнения
- •Команды передачи управления
- •Команды для операций над цепочками
- •Команды управления флаговым регистром
- •Прочие команды
- •Уровень языка ассемблера
- •Формат оператора в языке ассемблера
- •Команды
- •Операнды
- •Комментарии
- •Директивы
- •Макросы
- •Процесс ассемблирования
- •Архитектуры компьютеров параллельного действия
- •Организация конвейерных и параллельных вычислений
- •Конвейеры
- •Параллелизм на уровне процессоров
- •Мультикомпьютеры
- •Классификация вычислительных платформ, типы процессоров
- •Классификация компьютеров параллельного действия
Числа с плавающей точкой
В результате изучения данной темы Вы будете:
знать о принципах представления чисел с плавающей точкой;
понимать, каким образом происходит округление чисел;
иметь представление о стандарте арифметики с плавающей точкой IEEE 754.
До этого момента речь шла только о целых числах, однако, вычислительные машины, разрабатывались в первую очередь для облегчения трудоемких математических расчетов с вещественными числами. Поэтому, следующим шагом будет ознакомление с принципами представления вещественных чисел в компьютерах.
Принципы представления с плавающей точкой
Любое число можно выразить в следующей нормальной форме (такой способ еще называется экспоненциальной формой):
X = m×qe,
где m – мантисса числа;
q – основание системы счисления;
e – экспонента (порядок).
Для десятичной системы счисления число будет иметь вид:
X = m×10e
Компьютерная версия такого представления называется представлением с плавающей точкой. Ниже приведены примеры чисел в такой записи.
3,14 = 0,314×101 = 3,14×100
0,000001 = 0,1×10-5 = 1,0×10-6
1941 = 0,1941×104 = 1,941×103
Как видно из примеров, существует несколько способов представления того или иного числа. Поэтому, для однозначности, в компьютерах используется нормальная нормализованная форма, в которой положение точки всегда задается перед значащей цифрой мантиссы, т.е. выполняется условие
q-1 ≤ |m| < q0 = 1
В общем случае вещественное число можно хранить в памяти компьютера в виде двоичного представления мантиссы и экспоненты (Рис. 1 .1).
Зн
m
q-1
q-2
…
q-r
мантисса
числа:
m
экспонента
числа:
e
Рис. 1.1. Общая форма представления чисел в ЭВМ
Последовательность разрядов содержит:
разряд для знака мантиссы;
r цифровых разрядов для q-ичного модуля мантиссы;
разряд для знака порядка;
s разрядов для q-ичного модуля экспоненты.
Диапазон представления модулей чисел в нормальной
нормализованной форме определяется неравенством:
В конкретной ЭВМ диапазон представления чисел с плавающей точкой зависит от основания системы и числа разрядов для представления экспоненты.
Примерами применяемых форм чисел с плавающей точкой с различными основаниями системы счисления являются:
X = m×2e, где 1/2 ≤ |m| < 1;
X = m×8e, где 1/8 ≤ |m| < 1;
X = m×16e, где 1/16 ≤ |m| < 1.
Область значений определятся по числу разрядов в экспоненте e, а точность определяется по числу разрядов в мантиссе m.
Округление чисел
Рассмотрим представление R с трехразрядной мантиссой со знаком в диапазоне 0,1 ≤ |m| < 1 и двухразрядной экспонентой со знаком, эти числа находятся в диапазоне от -10-99 до +0,999×10+99.
Однако, в представлении R можно выразить ровно 179100 положительных чисел, 179100 отрицательных чисел и 0 (который можно выразить разными способами). То есть из бесконечного числа действительных чисел в этом диапазоне можно выразить всего 358201 чисел. Например, результат деления числа +0,100×103 на 3 нельзя выразить точно в нашей системе представления. Если полученное число нельзя выразить в используемой системе представления, нужно брать ближайшее число, которое представимо в этой системе. Такой процесс называется округлением.
Точность округления зависит от промежутков между смежными числами, которые (промежутки) не постоянны. Промежуток между числами +0,998×10+99 и +0,999×10+99 гораздо больше промежутка между числами +0,998×100 и +0,999×100. Однако если промежутки между числом и его соседом выразить как процентное отношение от этого числа, большой разницы в промежутках не будет. Другими словами, относительная погрешность, полученная при округлении, приблизительно равна и для малых, и для больших чисел.
Выводы, сделанные для системы представления с трехразрядной мантиссой и двухразрядной экспонентой, справедливы и для других систем представления чисел. При изменении числа разрядов в мантиссе или экспоненте просто меняется число представляемых единиц в этих областях. С увеличением числа разрядов в мантиссе увеличивается плотность элементов и, следовательно, точность приближений. С увеличением количества разрядов в экспоненте расширяется область определения чисел за счет уменьшения точности.