- •Содержание
- •Часть I. Арифметика в форматах с фиксированной точкой
- •1. Введение
- •Место и роль Арифметики цифровых вычислительных машин в современной науке
- •Предмет и предназначение настоящей книги
- •Рекомендации читателю
- •Раздел 2 достаточно просмотреть, быстро переворачивая страницы.
- •Позиционные системы счисления
- •Двоичная, восьмеричная, шестнадцатеричная и двоично-кодированные системы счисления
- •Преобразование чисел из десятичной в двоичную, восьмеричную и шестнадцатеричную системы счисления и наоборот
- •Представление чисел в форматах с фиксированной точкой
- •Формат с фиксированной точкой
- •Свойства формата с фиксированной точкой
- •Ограниченный диапазон представления чисел
- •Точность действительного числа в формате и точность формата
- •Значимость числа и потеря значимости
- •Эффективность использования двоичного формата
- •Представление чисел в прямом, обратном и дополнительном кодах
- •Взаимное преобразование прямого, обратного и дополнительного кодов
- •Взаимное преобразование прямого и обратного кодов отрицательных чисел
- •Взаимное преобразование обратного и дополнительного кодов отрицательных чисел
- •Взаимное преобразование прямого и дополнительного кодов отрицательных чисел
- •Запись кода числа в формат с фиксированной точкой
- •Функции системы записи и исключительные ситуации
- •Округление действительных чисел
- •Округление кодов действительных чисел с записью в формат с фиксированной точкой
- •Округление прямого кода числа
- •Округление обратного и дополнительного кодов положительного числа
- •Округление обратного кода отрицательного числа
- •Округление дополнительного кода отрицательного числа
- •Арифметические операции в форматах с фиксированной точкой
- •Операция пересылки
- •Операция изменения знака
- •Операции алгебраического сложения и вычитания
- •Сложение в дополнительном коде
- •Вычитание в дополнительном коде
- •Особенности сложения и вычитания в дополнительном коде
- •Сложение в обратном коде
- •Вычитание в обратном коде
- •Особенности сложения и вычитания в обратном коде
- •Взаимная замена операций вычитания и сложения
- •Сложение и вычитание в прямом коде
- •Операция алгебраического умножения
- •Умножение в прямом коде
- •Умножение в дополнительном коде
- •Умножение с преобразованием операндов в прямой код и произведения в дополнительный
- •Умножение дополнительного кода множимого на модуль множителя
- •Умножение дополнительного кода множимого на дополнительный код множителя
- •Умножение множимого в традиционной двоичной системе на множитель, представленный в двоичной системе счисления с алфавитом
- •Умножение дополнительных кодов с заменой знакового разряда множителя 1 на
- •Преобразование множителя с заменой цепочек единиц нулями
- •Преобразование множителя с сокращением вдвое верхней оценки количества единиц
- •Умножение на два разряда с переносом 1 в очередную двойку разрядов множителя
- •Умножение на два разряда с преобразованием множителя заменой цепочек единиц нулями
- •Умножение на два разряда множителя с увеличенным количеством нулевых частных произведений
- •Изменение операции над частным произведением
- •Вычисление частного произведения с требуемым знаком
- •Сокращение матриц дополнительных кодов частных произведений
- •Табличный способ умножения
- •Умножение чисел большой разрядности
- •Операции алгебраического деления и вычисления остатка
- •Математические основы некоторых способов деления двоичных чисел
- •Деление двоичных чисел в прямом коде
- •Деление с восстановлением остатка
- •Деление без восстановления остатка
- •Деление с вычислением очередного сдвинутого влево остатка
- •Деление без записи очередного остатка на место предыдущего
- •Деление двоичных чисел в дополнительном коде
- •Деление нормализованных двоичных чисел
- •Некоторые способы ускорения деления
- •Операция сравнение
- •Выполнение операций в двоично-десятичной системе счисления
- •Вычисление двоично-десятичного кода обратной десятичной цифры
- •Взаимные преобразования прямого, обратного и дополнительного кода двоично-десятичного числа
- •Изменение знака двоично-десятичных чисел
- •Сложение двоично-десятичных чисел
- •Сложение в двоично-десятичной системе 8421
- •Вычитание двоично-десятичных чисел
- •Литература
Взаимное преобразование прямого, обратного и дополнительного кодов
По определению в разделе 3.2 запись положительного числа во всех кодах совпадает. Поэтому преобразование кода положительного числа в любой другой код выполняется копированием исходного кода в формат результата.
Задача преобразования кодов осложняется, если число отрицательное. При этом существует множество способов преобразования. Конструктор выбирает тот из них, который является оптимальным при множестве ограничений специфичных для проектируемого изделия. Однако чтобы выбирать оптимальный, необходимо знать все множество способов преобразования или свободно владеть приемами их конструирования.
Взаимное преобразование прямого и обратного кодов отрицательных чисел
При преобразовании знак числа сохраняется. Поэтому при любом способе преобразования содержимое поля знака исходного кода можно копировать в поле знака результата.
Количественный эквивалент значащих разрядов обратного кода отрицательного числа является дополнением количественного эквивалента значащих разрядов прямого кода до величины . Следовательно, количественные эквиваленты значащих разрядов обратного и прямого кодов связаны отношениями
(3-12)
. (3-13)
Поэтому правила преобразования прямого в обратный код и обратного в прямой код совпадают.
Так как и то формат числа при преобразованиях сохраняется.
Преобразование содержимого значащих полей можно выполнить двумя способами:
Вычесть из константы содержимое значащих полей исходного кода и записать результат в значащие поля результата.
Записать в позиции значащих полей результата цифры обратные цифрам, записанным в соответствующих позициях исходного формата.
Константа в любой системе счисления является цепочкой цифр с максимальным количественным эквивалентом. Например, в десятичной: 999…9; в шестнадцатеричной: FFF…F; в двоичной: 111…1. Вычитание из такой константы числа не приводит к образованию займов и сводится к выполнению операции поразрядного вычитания, т.е. к выполнению вычитания цифр в каждом разряде независимо от результата вычитания в других разрядах.
Пример 3-4. Выполнено преобразование значащих разрядов прямого кода чисел: –129,7910; –12,EF16; –10,102 в обратный код способом 1.
В
A B C
P=10 P=16 P=2
999|99 FFF
|FF
111|11 -
1|129|79
-
1| 012
|EF
- 1|010|10
1|870|20
1|FED|10
1|101|01
Преобразование способом 1 вычисленных обратных кодов в прямые коды выполните самостоятельно, и убедитесь в том, что результаты преобразования совпадают с исходными кодами.
В позиционных системах счисления цифры и удовлетворяющие отношению называют взаимно обратными, откуда происходит название обратного кода. Например, десятичные цифры 3 и 6; 8 и 1; 0 и 9 взаимно обратные, так как ; ; . Двоичные цифры 0 и 1 взаимно обратные, поскольку , а . Шестнадцатеричные цифры 7 и 8; E и 1; 2 и D взаимно обратные, так как ; ; ; ; ; .
Из примера 3-4 следует, что результат вычитания можно получить заменой цифр в исходном коде обратными. Это подтверждает правильность преобразований способом 2.
Пример 3-5. Ниже приведены результаты преобразования прямых кодов в обратные коды или наоборот выполненные способом 2.
В варианте A число положительное. Поэтому прямой и обратный код числа совпадают.
Убедитесь в том, что подсчет количественных эквивалентов пар кодов по формулам (3-09) и (3-11) дает одинаковые результаты как в случае положительных, так и в случае отрицательных чисел.
О
1|01|10 0|01|10
11
11
00 00
1|10|01 0|01|10
10110 00110
11
11
00 00
11001 00110