- •Содержание
- •Часть I. Арифметика в форматах с фиксированной точкой
- •1. Введение
- •Место и роль Арифметики цифровых вычислительных машин в современной науке
- •Предмет и предназначение настоящей книги
- •Рекомендации читателю
- •Раздел 2 достаточно просмотреть, быстро переворачивая страницы.
- •Позиционные системы счисления
- •Двоичная, восьмеричная, шестнадцатеричная и двоично-кодированные системы счисления
- •Преобразование чисел из десятичной в двоичную, восьмеричную и шестнадцатеричную системы счисления и наоборот
- •Представление чисел в форматах с фиксированной точкой
- •Формат с фиксированной точкой
- •Свойства формата с фиксированной точкой
- •Ограниченный диапазон представления чисел
- •Точность действительного числа в формате и точность формата
- •Значимость числа и потеря значимости
- •Эффективность использования двоичного формата
- •Представление чисел в прямом, обратном и дополнительном кодах
- •Взаимное преобразование прямого, обратного и дополнительного кодов
- •Взаимное преобразование прямого и обратного кодов отрицательных чисел
- •Взаимное преобразование обратного и дополнительного кодов отрицательных чисел
- •Взаимное преобразование прямого и дополнительного кодов отрицательных чисел
- •Запись кода числа в формат с фиксированной точкой
- •Функции системы записи и исключительные ситуации
- •Округление действительных чисел
- •Округление кодов действительных чисел с записью в формат с фиксированной точкой
- •Округление прямого кода числа
- •Округление обратного и дополнительного кодов положительного числа
- •Округление обратного кода отрицательного числа
- •Округление дополнительного кода отрицательного числа
- •Арифметические операции в форматах с фиксированной точкой
- •Операция пересылки
- •Операция изменения знака
- •Операции алгебраического сложения и вычитания
- •Сложение в дополнительном коде
- •Вычитание в дополнительном коде
- •Особенности сложения и вычитания в дополнительном коде
- •Сложение в обратном коде
- •Вычитание в обратном коде
- •Особенности сложения и вычитания в обратном коде
- •Взаимная замена операций вычитания и сложения
- •Сложение и вычитание в прямом коде
- •Операция алгебраического умножения
- •Умножение в прямом коде
- •Умножение в дополнительном коде
- •Умножение с преобразованием операндов в прямой код и произведения в дополнительный
- •Умножение дополнительного кода множимого на модуль множителя
- •Умножение дополнительного кода множимого на дополнительный код множителя
- •Умножение множимого в традиционной двоичной системе на множитель, представленный в двоичной системе счисления с алфавитом
- •Умножение дополнительных кодов с заменой знакового разряда множителя 1 на
- •Преобразование множителя с заменой цепочек единиц нулями
- •Преобразование множителя с сокращением вдвое верхней оценки количества единиц
- •Умножение на два разряда с переносом 1 в очередную двойку разрядов множителя
- •Умножение на два разряда с преобразованием множителя заменой цепочек единиц нулями
- •Умножение на два разряда множителя с увеличенным количеством нулевых частных произведений
- •Изменение операции над частным произведением
- •Вычисление частного произведения с требуемым знаком
- •Сокращение матриц дополнительных кодов частных произведений
- •Табличный способ умножения
- •Умножение чисел большой разрядности
- •Операции алгебраического деления и вычисления остатка
- •Математические основы некоторых способов деления двоичных чисел
- •Деление двоичных чисел в прямом коде
- •Деление с восстановлением остатка
- •Деление без восстановления остатка
- •Деление с вычислением очередного сдвинутого влево остатка
- •Деление без записи очередного остатка на место предыдущего
- •Деление двоичных чисел в дополнительном коде
- •Деление нормализованных двоичных чисел
- •Некоторые способы ускорения деления
- •Операция сравнение
- •Выполнение операций в двоично-десятичной системе счисления
- •Вычисление двоично-десятичного кода обратной десятичной цифры
- •Взаимные преобразования прямого, обратного и дополнительного кода двоично-десятичного числа
- •Изменение знака двоично-десятичных чисел
- •Сложение двоично-десятичных чисел
- •Сложение в двоично-десятичной системе 8421
- •Вычитание двоично-десятичных чисел
- •Литература
Вычисление двоично-десятичного кода обратной десятичной цифры
Рассмотрим вычисление обратной десятичной цифры в кодах 8421, 8431+6 и 8421+3.
Пусть X и Y взаимно обратные десятичные цифры. Тогда справедливо отношение
X+Y = 9.
Так как при кодировании цифр X и Y им приведены в соответствие двоичные числа и такие, что удовлетворяется равенство количественных эквивалентов,
;
,
где – смещение, целое со знаком, быть может, равное 0, то справедливо отношение
, (4-27)
позволяющее вычислить код y обратной цифры вычитанием кода прямой цифры из константы 9+2b.
В (4-27) можно заменить операцию вычитания сложением (раздел 4.3.7). Для этого достаточно константу сложить с дополнением x, отбрасывая перенос из разряда с весом 8. Тогда
. (4-28)
Здесь – знак операции двоичной инверсии.
Заменив в (4-28) операцию сложения константы вычитанием ее дополнения, получим
. (4-29)
При вычислениях y по выражениям (4-27), (4-28) и (4-29) константы должны быть представлены в двоичной системе счисления, и, поскольку коды x и y содержат по 4 разряда, при выполнении операции сложения (вычитания) разряд с весом 16 вычислять не следует.
При кодировании десятичных цифр в коде 8421 смещение . Подставив значение b в (4-27), (4-28) и (4-29) и представив константы в двоичной системе счисления, найдем три варианта вычисления кода обратной цифры:
; (4-30)
; (4-31)
. (4-32)
Вычисление кода следует выполнять по правилам справедливым в двоичной системе счисления. Например, пусть , код . Тогда код y цифры обратной X, вычисляемый по выражениям (4-30), (4-31) и (4-32) будет
;
;
.
При сложении и вычитании перенос и заем из старшего разряда следует отбрасывать.
Поскольку константы 1010 и 0110 имеют 0 в младшем разряде, то младший разряд x можно копировать в y и выполнять сложение (вычитание) только старших разрядов x с константами 1012 и 0112, что упрощает вычисления.
При кодировании десятичных цифр в коде 8421+6 смещение . Подставив значение b в (4-27), (4-28) и (4-29) и представив константы в двоичной системе счисления, найдем варианты вычисления кода обратной цифры:
;
;
.
Поскольку коды x и y имеют 4 разряда, можно в константах 10101 и 10110 отбросить старшие разряды и при вычитании и сложении не вычислять заем и перенос в пятый разряд, что упростит вычисления. Тогда:
; (4-33)
; (4-34)
. (4-35)
Например, пусть , код . Тогда код цифры обратной X будет:
;
;
.
Поскольку константы 0110 и 1010 имеют 0 в младшем разряде, то младший разряд можно копировать в y и выполнять сложение (вычитание) только старших разрядов с константами 0112 и 1012, что упрощает вычисления.
При кодировании десятичных цифр в коде 8421+3 смещение . Подставив значение b в (4-27), (4-28) и (4-29) и представив константы в двоичной системе счисления, найдем варианты вычисления кода обратной цифры:
; (4-36)
;
.
Так как старший разряд константы 10000 можно отбросить, а прибавление или вычитание нуля можно не выполнять, то
. (4-37)
Правила вычисления обратной цифры в коде 8421+3 вытекающие из (4-36) и (4-37) аналогичны правилам вычисления обратных цифр двоичного числа, что существенно упрощает вычисление кода обратной цифры в системе 8421+3. Это свойство кода 8421+3 придает ему преимущества перед кодами 8421 и 8421+6, так как упрощает процедуры взаимного преобразования прямого и обратного кодов десятичных чисел и изменения знака обратного кода числа. Кроме того, системы взаимного преобразования прямого и обратного кодов и изменения знака двоичных чисел в обратном коде выполняют эти операции и над двоично-десятичными числами в коде 8421+3 без внесения в них каких-либо изменений.