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

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

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

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

6.3. СДВИГ Д-КОДОВ

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

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

Таблица 6.1

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

Пример. Задано в коде число

Сдвинуть его на один двоичный разряд влево

Таким образом,

Пример. Задано в коде число

Сдвинуть его на один двочный разряд вправо

Таким образом,

При делении кода на 2 необходимо сдвинуть его на один двоичный разряд вправо и вычесть поправку из тех которые сдвинулась единица из предшествующей или прибавить поправку 1101 с блокированием возникающего межтетрадного переноса.

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

Пример. Задано в коде число .

Сдвинуть его на один разряд влево

Таким образом,

При делении кода на 2 необходимо сдвинуть его на один двоичный разряд вправо и прибавить поправку согласно табл. 6.1.

Табл 6.1 получается на основании следующих соображений. Если цифра а, записанная в данной тетраде, четная, т. е. ее двоичный код будет нечетным, гак как он равен . Если а — нечетное, т. е. , то двоичный код в данной тетраде будет четным, так как он равен 26 4 4.

В старшую тетраду ничего не сдвигается, но из нее в соседнюю справа тетраду сдвигается либо 0, либо 1 Если сдвигается 0, значит код в ней четен и равен . После сдвига он станет равен должен быть равным следовательно, необходима поправка на величину Если из старшей тетрады сдвигается 1, то а четно и после сдвига должен быть код Сдвигается же код Здесь переходит в виде 1 в тетраду справа, а поправка, очевидно, будет равна

Рассмотрим сдвиг любой тетрады. Если в нее сдвигается 0, то это значит, то в нее должна попасть 1 с весом 5 (10/2). Если из тетрады сдвигается 0, то в ней число нечетно, т. е. а код его четный, т. е. равен После сдвига в тетраде будет код должно быть Поэтому поправка в этом случае составит Если же из данной тетрады сдвигается код 1, то в ней число четно, т. е. код нечетный и равен . После сдвига в тетраде получим

При этом y в виде сдвигается в соседнюю справа тетраду, а в данной остается код то должно быть Отсюда поправка равна

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

После сдвига получим код При этом переходит в виде

1 в соседнюю справа тетраду, а в данной остается е. необходима поправка кода тетрады на величину 2—8 — —6, которая также задается в виде дополнения до 16, т. е. Необходимо помнить, что в коде при реализации поправок цепи межтетрадных переносов блокируются.

Если данная тетрада младшая, то сдвигаемая из нее вправо двоичная цифра будет представлять собой инверсный код остатка от деления числа на 2: если цифра кода остатка 0, то цифра остатка числа равна 1 и наоборот.

Пример. Задано в коде , сдвинуть его на один двоичный разряд вправо

Таким образом,

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