Главная > Прикладная теория цифровых автоматов
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

Глава 7. ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ В СИСТЕМАХ СПЕЦИАЛЬНОГО НАЗНАЧЕНИЯ

7.1. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ В СИСТЕМЕ СЧИСЛЕНИЯ С ЦИФРАМИ 1,1

Для выполнения арифметических операций необходимо уметь переводить дополнительный код двоичного числа в систему 1,1 и наоборот.

Поэтому будем считать, что исходные числа заданы в обычной двоичной системе счисления дополнительными кодами в форме с естественной запятой. Необходимо найти их изображения в двоичной системе счисления о цифрами 1,1. Будем считать, что исходное число А положительно и его целая часть содержит разрядов, а дробная — разрядов. Если исходное число имеет меньше разрядов, то вначале дополняется нулями целая часть до разряда, а дробная — до разряда. Затем приписывается слева еще один -разряд со значением 1, в результате чего количественный эквивалент

нового числа станет равным Теперь все нули в изображении нового числа А заменяются на 1, что равносильно вычитанию из числа А числа . В результате получим новое число А такое, что Для завершения перевода необходимо сдвинуть число на один разряд вправо, т. е. разделить на 2. Окончательно получим Именно такой количественный эквивалент имеет исходное число.

Пример. Задано Найти изображение А в системе счисления с цифрами при к 3 и

Вначале дописываем слева и справа необходимые нули и слева еще один разряд со значением 1. Получаем Затем заменяем все нули в изображении на Сдвигаем число А на один разряд вправо и получаем результат .

Так как дополнительные и прямые коды положительных чисел совпадают, то рассмотренный алгоритм может быть применен и для перевода прямых кодов.

Когда отрицательное число задано дополнительным кодом, его количественный эквивалент определяется как , где — значение основных разрядов дополнительного кода. При записи числа А дополнительным кодом будем считать, что целая часть исходного числа имеет столько же разрядов, сколько и искомого. Тогда для перевола числа Л в двоичную систему счисления в цифрами 1. Т вначале по необходимости дополним дробную часть числа нулями до (к — I) разрядов и знаковый разряд заменим на ноль. В результате этих действий получим новое число Затем все нули в числе Л, включая знаковый разряд, заменим на 1, в результате чего получим

Теперь число А" сдвинем на один разряд вправо и получим окончательный результат е. исходное число, представленное в системе счисления о цифрами I, 1 и имеющее значение количественный эквивалент которого равен

Пример. В двоичной системе счисления с цифрами 0,1 дополнительным кодом задано число — 2,5 в форме с естественной запятой при и Найти изображение этого числа в системе счисления с цифрами I, 1.

Вначале трансформируем исходную запись, заменяя знаковый разряд на 0 и дополняя справа запись нулями до разрядов дробной части: Затем все нули в записи этого числа заменим на I, получим Далее уменьшим в два раза число и окончательно найдем, что искомое число В есть Количественный эквивалент этого числа

Таким образом, перевод чисел, заданных дополнительным кодом в двоичной системе счисления с цифрами 0, I, в двоичную систему о цифрами 1, I осуществляется путем выполнения логических преобразований над исходной записью в соответствии в одним из двух

рассмотренных алгоритмов. Обратный перевод, т. е. перевод чисел, изображенных в двоичной системе счисления с цифрами 1, 1, в обычную двоичную систему с положительной базой, может быть реализо путем выполнения логических преобразований, отвечающих прямому переводу, в обратном порядке.

Пример. В двоичной системе счисления с цифрами 1,1 задано число — 2,5 в форме с естественной запятой при Найти изображение этого числа в обычной двоичной системе счисления дополнительным кодом.

Итак, исходная запись есть Для перевода вначале сдвинем влево исходную запись, получим число Затем все I заменим на нули, тогда Теперь, поскольку исходное число имело знак знаковому разряду припишем значение 1, окончательно получим Количественный эквивалент получившегося числа есть — 2,5 и оно представлено дополнительным кодом в двоичной гистеме счисления.

Алгебраическое сложение в системе счисления с цифрами I, 1

Пусть операнды заданы в двоичной системе счисления с цифрами 1, 1 и требуется найти их сумму Будем считать, что количественный эквивалент слагаемых определен соотношением (2.19). Следовательно, если найдется сумма двух слагземых, то согласно (2.19) она будет увеличена по сравнению с ее реальным значением на Отсюда ясна необходимость коррекции результата сложения. При определении разрядной суммы и переноса надо иметь в виду, что слагаемые имеют только ненулевые значения, а перенос может иметь значение как -Н. таки —1 Если считать, что для значений поразрядной суммы и переноса допустимы значения 1, 0,1, то таблица сложения в двоичной системе счисления с цифрами 1,1 примет вид табл. 7.1,

Характерной особенностью сложения является то, что значение разрядной суммы отлично от нуля только в том случае, если в предыдущем разряде был выработай перенос. Если же в предыдущем разряде переноса не было выработано, разрядная сумма обязательно есть нуль Легко заметить, что необходимая коррекция может быть произведена как присвоение переносу в младший разряд сумматора значения 1.

Пример. Найти сумму двух чисел , представленных в двоичной системе счислення с цифрами I, 1 в форме с естественной запятой при если Имеем Сложим эти числа по пра вилам табл. 7.1. Учитывая, что получим

Таблица 7.1.

Результат сложения представлен в двоичной системе счисления с цифрами 1,0,1, поэтому необходимо еще перевести его в систему счисления с цифрами -Сделаем этот перевод в соответствии с ранее рассмотренным алгоритмом — выделим вначале в изображении исходного числа конструкции вида а затем заменим их на конструкции и . Например, то после перевода получим что в соответствии с (2 19) отвечает числу 1,25.

Для ускорения операции сложения следует избавиться от этапа перевода, т. е. сразу получать результат в окончательном виде. Очевидно, для этого следует изменить таблицу сложения таким образом, чтобы исключить получение нулевых значений разрядной суммы [381.

Любой результат надо анализировать для выполнения возможной коррекции. Это связано с тем, что наличие переноса из старшего разряда сумматора еще не означает переполнения сумматора. Только в том случае, если знаки переноса из старшего разряда сумматора и значение суммы в этом разряде совпадают, переполнение реально существует. Когда же знаки этих величин разные, то переполнения фактически нет и для коррекции результата надо отбросить значение переноса, а знак старшего разряда суммы изменить на противоположный.

Пример. Найти сумму двух величин и которые заданы в двоичной системе счисления с цифрами 1, 1 в с естественной запятой при и

Действуя по прпнилпм (7.1), получим, что Поскольку знаки переноса и старшего разряда суммы не совпадают, то необходима коррекция суммы, и после ее выполнен ни получим окончательно .

Для осуществления операции вычитания чисел, представленных в двоичной системе счисления с цифрами 1,1, надо вначале у вычитаемого числа поменять знаки во всех разрядах на противоположные, а затем сложить это число с другим операндом. Будем считать, что количественный эквивалент числа определен соотношением (2.19), тогда после иииереии мижа у всех разрядов числа В и сложения его с числом А получим новое число 5. численное значение которого меньше истинной величины на поэтому, как и при сложении, необходимо значение переноса в младший разряд сумматора сделан, ненулевым, а именно

Лини числа представленные в двоичной системе счислении цифрами I, 1 и в форме с естественной запятой при и Найти разность инвертируем знаки во всех разрядах числа В, тогда Затем сложим А и В по правилам (7.1) с учетом получим Численный «кпнлплент результата согласно (2.19) есть

Осншшое достоинство сложения чисел в этой двоичной системе вчисленин состоит в отсутствии анализа знаков операндов. В то же время здесь усложнены определение переполнения сумматора, операции сдвига чисел и округления.

Хотя технически циклический сдвиг осуществляется точно так же, как и в случае обычной системы счисления, реализация нециклического сдвига имеет свои особенности. При сдвиге вправо старший разряд инвертируется, затем все число сдвигается вправо на разрядов. Разряды, вышедшие за разрядную сетку, теряются, а освободившиеся слева разряды заполняются новым (инвертированным) значением старшей цифры исходного числа. После завершения сдвига значение старшего разряда вновь инвертируется.

Пример. Число сдвинуть на три разряда вправо, сохранив положение запятой. Вначале получим затем , наконец, окончательно Полученное значение есть 2.

Сдвиг влево должен быть произведен с учетом возможной свертки разрядов, выходящих за разрядную сетку, и если он совпадает со старшим из оставшихся разрядов, то никаких изменений не производится, если же он имеет противоположный знак, то старший разряд сдвинутого числа инвертируется. Освобождающиеся справа разряды должны быть заполнены цифрами 1. Действительно, при сдвиге влево на разрядов из равенства (2.19) получим Если на место освободившихся слева разрядов записать цифр 1, то значение станет равным

Пример. Число сдвинуть влево на три разряда. После сдви имеем следовательно, в пределах заданного числа разрядов число должно иметь вид . Действуя подобным образом и далее, получим окончательно Численный эквивалент числа есть, таким образом 16, а численный эквивалент исходного числа был 2.

Хотя выполнение сложения в двоичной системе счисления и встречает определенные трудности, все же они преодолеваются весьма просто и в целом операция сложения оказывается близкой к этой же операции в обычной системе счисления при использовании дополнительных кодов.

Умножение чисел в системе счисления с цифрами 1,1

Умножение чисел, представленных в двоичной системе счисления с цифрами 1, 1 и удовлетворяющих соотношению (2.19), не вызывает принципиальных трудностей но следует иметь в виду, что полученный результат будет иметь величину Приведение его к принятой для операндов форме потребует дополнительных действий, что приведет к усложнению алгоритма умножения и увеличению времени его реализации. В то же время не видно никаких особых преимуществ выполнения операции умножения, когда оба операнда заданы в системе счисления с цифрами 1 и 1. Однако совсем иначе обстоит дело, когда запись в системе с цифрами 1, 1 используется в качестве промежуточного представления. Это

вынуждает иногда переводить дополнительные коды и прямые и выполнять операцию, а затем вновь переходить к дополнительным кодам. Для облегчения выполнения операции умножения в дополнительных и обратных кодах имеег смысл рассмотреть варианты с предварительным преобразованием множителя в систему счисления с цифрами 1,1. При этом фактически вычисленное значение произведения окажется но вычитание числа произведения осуществить просто, так как реализация умножения практически всегда производится как операция где D обязательно должно быть меньше если А и В — целые -разрядные числа. представленные в системе счисления с основанием Отсюда достаточно перед началом операции в сумматор поместить величину В Обычное выполнение операции приведет к автоматическому вычитанию величины из произведения, т. е. обеспечит получение правильного результата. При новом представлении множителя процесс умножения обычен и на каждом шаге производится либо прибавление множимого к сумме частичных произведений (когда цифра либо его вычитание (цифра множителя —1). Результат получается сразу же в дополнительном коде

Пример. Даны величины представленные в двоичной системе счисления модифицированными двоичными кодами, т. е. и Найти их с помощью промежуточного представления множителя в системе счисления ннфрямн 1,1. Вначале представим множитель в системе с цифрами I, 1. Найдем

1-й шаг 1,011 — начальное значение суммы частичных произведений (загрузка В)

Окончательно имеем

Таким образом, преобразование множителя, представленного дополнительным кодом, в систему счисления с цифрами 1, 1 позволяет умножение дополнительных кодов произвести точно так же, как умножение прямых кодов. При этом результат сразу же получается в исходной форме, а преобразование множителя может быть

произведено в процессе анализа его цифр, т. е. нет необходимости предварительно осуществлять преобразование, достаточно множитель проинтерпретировать в двоичной системе с цифрами 1, 1.

Деление чисел в системе счисления с цифрами 1,1

Прямая реализация операции деления чисел, представленных в двоичной системе счисления с цифрами 1,1 вряд ли имеет смысл, ибо частное от деления числа А на число В будет иметь значение которое при малых А и В может быть весьма далеким от истинной величины Наиболее рациональным представляется применение рассматриваемой системы счисления для изображения частного от деления чисел, представленных в обычной двоичной системе счисления прямыми, дополнительными или обратными кодами, В этом случае цифра частного на каждом шаге деления есть 1 (если уменьшаемое имеет знак ) либо 1 (если оно имеет знак ). Перевод частного из системы счисления с цифрами 1,1 в исходную производится по известным правилам [38]

Промежуточное представление частного в системе счисления а цифрам 1, 1 имеет ряд особенностей. Во-первых, цифра частного определеяется знаком уменьшаемого, а не остатка, как обычно. Во-вторых, результат сразу получен в дополнительном коде, который представлен в системе счисления с цифрами 1, 1.

Таким образом, исследование особенностей двоичной системы счисления с цифрами 1, 1 показывает, что наиболее рационально использовать эту систему как промежуточную при выполнении операций умножения и деления в дополнительных или обратных кодах. В то же время возможна и прямая реализация арифметических действий в системе с цифрами 1,1, которая, однако, оказывается заметно сложнее, особенно при сложных операциях, таких, как умножение и деление.

1
Оглавление
email@scask.ru