- •Содержание
- •Часть I. Арифметика в форматах с фиксированной точкой
- •1. Введение
- •Место и роль Арифметики цифровых вычислительных машин в современной науке
- •Предмет и предназначение настоящей книги
- •Рекомендации читателю
- •Раздел 2 достаточно просмотреть, быстро переворачивая страницы.
- •Позиционные системы счисления
- •Двоичная, восьмеричная, шестнадцатеричная и двоично-кодированные системы счисления
- •Преобразование чисел из десятичной в двоичную, восьмеричную и шестнадцатеричную системы счисления и наоборот
- •Представление чисел в форматах с фиксированной точкой
- •Формат с фиксированной точкой
- •Свойства формата с фиксированной точкой
- •Ограниченный диапазон представления чисел
- •Точность действительного числа в формате и точность формата
- •Значимость числа и потеря значимости
- •Эффективность использования двоичного формата
- •Представление чисел в прямом, обратном и дополнительном кодах
- •Взаимное преобразование прямого, обратного и дополнительного кодов
- •Взаимное преобразование прямого и обратного кодов отрицательных чисел
- •Взаимное преобразование обратного и дополнительного кодов отрицательных чисел
- •Взаимное преобразование прямого и дополнительного кодов отрицательных чисел
- •Запись кода числа в формат с фиксированной точкой
- •Функции системы записи и исключительные ситуации
- •Округление действительных чисел
- •Округление кодов действительных чисел с записью в формат с фиксированной точкой
- •Округление прямого кода числа
- •Округление обратного и дополнительного кодов положительного числа
- •Округление обратного кода отрицательного числа
- •Округление дополнительного кода отрицательного числа
- •Арифметические операции в форматах с фиксированной точкой
- •Операция пересылки
- •Операция изменения знака
- •Операции алгебраического сложения и вычитания
- •Сложение в дополнительном коде
- •Вычитание в дополнительном коде
- •Особенности сложения и вычитания в дополнительном коде
- •Сложение в обратном коде
- •Вычитание в обратном коде
- •Особенности сложения и вычитания в обратном коде
- •Взаимная замена операций вычитания и сложения
- •Сложение и вычитание в прямом коде
- •Операция алгебраического умножения
- •Умножение в прямом коде
- •Умножение в дополнительном коде
- •Умножение с преобразованием операндов в прямой код и произведения в дополнительный
- •Умножение дополнительного кода множимого на модуль множителя
- •Умножение дополнительного кода множимого на дополнительный код множителя
- •Умножение множимого в традиционной двоичной системе на множитель, представленный в двоичной системе счисления с алфавитом
- •Умножение дополнительных кодов с заменой знакового разряда множителя 1 на
- •Преобразование множителя с заменой цепочек единиц нулями
- •Преобразование множителя с сокращением вдвое верхней оценки количества единиц
- •Умножение на два разряда с переносом 1 в очередную двойку разрядов множителя
- •Умножение на два разряда с преобразованием множителя заменой цепочек единиц нулями
- •Умножение на два разряда множителя с увеличенным количеством нулевых частных произведений
- •Изменение операции над частным произведением
- •Вычисление частного произведения с требуемым знаком
- •Сокращение матриц дополнительных кодов частных произведений
- •Табличный способ умножения
- •Умножение чисел большой разрядности
- •Операции алгебраического деления и вычисления остатка
- •Математические основы некоторых способов деления двоичных чисел
- •Деление двоичных чисел в прямом коде
- •Деление с восстановлением остатка
- •Деление без восстановления остатка
- •Деление с вычислением очередного сдвинутого влево остатка
- •Деление без записи очередного остатка на место предыдущего
- •Деление двоичных чисел в дополнительном коде
- •Деление нормализованных двоичных чисел
- •Некоторые способы ускорения деления
- •Операция сравнение
- •Выполнение операций в двоично-десятичной системе счисления
- •Вычисление двоично-десятичного кода обратной десятичной цифры
- •Взаимные преобразования прямого, обратного и дополнительного кода двоично-десятичного числа
- •Изменение знака двоично-десятичных чисел
- •Сложение двоично-десятичных чисел
- •Сложение в двоично-десятичной системе 8421
- •Вычитание двоично-десятичных чисел
- •Литература
Значимость числа и потеря значимости
Под значимостью числа и информации понимают их пригодность к практическому использованию в различных областях целенаправленной деятельности человека. Число теряет значимость, если его точность меньше некоторой минимально допустимой величины, зависящей от области применения числа. Знанием минимально допустимой точности владеет только пользователь. Если пользователь выбрал для представления числа формат с фиксированной точкой имеющий определенную точность, то это означает, что точность формата не меньше минимально допустимой точности, определяющей потерю значимости числа.
Если при записи точного числа в формат младшие разряды дробной части неравные нулю отбрасываются, то число теряет точность. Но если при этом в старшую позицию формата выполняется запись цифры отличной от нуля, то точность числа в формате равна точности формата и, следовательно, оно не может потерять значимость. В этом случае имеет место ординарная (обычная) потеря точности. Если число теряет точность и в старшую позицию формата записывается ноль, то точность числа становится меньше точности формата и существует вероятность того, что число потеряло значимость.
Чем длиннее цепочка нулей в старших позициях формата в сочетании с потерей числом точности, тем меньше его точность и тем больше вероятность потери числом значимости. Поэтому область чисел на числовой оси рис.3-5 имеющих нуль в старшей позиции формата называют областью растянутой потери значимости. Эту область можно было бы назвать областью с возрастающей вероятностью потери числом значимости по мере приближения числа к нулю.
Следует помнить, что точные числа, содержащие нули в отбрасываемых разрядах, будут записаны в формат точно и без какой-либо потери значимости, даже если они расположены на числовой оси в области растянутой потери значимости. Примером тому может служить точное число равное Оно будет записано, как ±00…0,00…01, и содержать единственную цифру не равную нулю. Не зная предысторию можно предположить, что точность этого числа предельно минимальна, равна 1 и едва ли это число имеет значимость. Но оно точное и его значимость безусловна.
Факт потери точности или значимости может быть установлен только при записи числа в формат.
При программировании необходимо принимать во внимание, что результаты выполнения операций могут «попадать» в область потери значимости, и принимать меры для исключения возможных недопустимо больших ошибок при последующих вычислениях.
Эффективность использования двоичного формата
Числа хранят в двоичном формате независимо от системы счисления, в которой они представлены. Для этого символы, используемые для записи числа, представляют двоичными кодами и выбирают длину формата минимальной и достаточной для представления чисел.
В двоичном формате
длиной
можно записать
двоичных кодов. В некоторых случаях,
например при кодировании десятичных
чисел, из
кодов формата используется только
некоторая часть.
Эффективность использования двоичного формата оценивают отношением количества кодов, используемых для представления информации, к значению , выраженным в процентах.
При кодировании цифр систем счисления с основаниями 8, 10, 16 двоичными кодами табл.2.2 и табл.2.3 каждая позиция формата, предназначенная для хранения P-ичной цифры, заменяется тремя или четырьмя двоичными позициями (битами), что приводит к увеличению длины значащих полей формата в 3 или в 4 раза. При записи в таком двоичном формате восьми- или шестнадцатеричных чисел используются все двоичные коды формата, так как все 3- или 4-битовые коды кодируют цифры позиции. Эффективность использования двоичного формата числами в этих системах счисления 100%.
Для хранения в двоичном формате десятичных чисел используется лишь часть двоичных кодов формата, так как для кодирования десятичных цифр применяют только 10 из 16 четырех битовых кодов. Это приводит к снижению эффективности использования двоичного формата при хранении в нем десятичных чисел. Эффективность использования двоичного формата при хранении десятичных чисел без знака
(3-08)
быстро
снижается с ростом
– количества десятичных цифр в числе.
Так, при
при
при
.
Низкая эффективность использования двоичного формата десятичными числами является основной причиной преимущественного применения в ЭВМ не десятичной системы счисления.
Можно повысить эффективность использования формата, кодируя совместно два десятичных разряда. Для этого потребуется 100 кодов из 128 кодов 7 битового формата. При таком способе кодирования числа представлены в системе с основанием P = 100.
