Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Суммирование чисел с одинаковыми знаками в BCD-кодеСодержание книги
Поиск на нашем сайте
При выполнении операций над отмеченными кодами возможны следующие особенности: § наличие разрешенных и запрещенных комбинаций, свидетельствующих о правильности результата или необходимости его коррекции; § при сложении тетрад возможен потетрадный (16 единиц), а не поразрядный (10 единиц) перенос, что также требует корректировки результата. При сложении чисел в BCD-коде возможны три случая: 1) (a + b) ≤ 9. В этом случае если действия выполняются по правилам двоичной арифметики, то величина получаемой суммы не превышает девяти и коррекция результата не требуется. 5 0101 + 30011 8 1000 2) 10 ≤ (a + b) ≤ 15. Если результат сложения двух чисел попадает в данный диапазон чисел, то возможны два случая результирующей тетрады. 5 0101 9 1001 + 60110 + 40100 11 1011 13 1101 В этом случае в тетраде накопилось более девяти единиц и должен быть выполнен десятичный перенос. Перенос единицы в старший разряд выполняется принудительно логической схемой. Условием для формирования единицы переноса является возникновение запрещенной комбинации (наличие единицы в разрядах с весом 8 и 4 или 8 и 2). Однако тетраду надо освободить от десяти избыточных единиц. Это тоже делается принудительно добавлением 0110 (шестерки), что приводит к возникновению шестнадцатеричного переноса. Этот перенос игнорируется. Схема формирования принудительного переноса приведена на рис.11. 3) (a + b) ≥ 16. Здесь в процессе суммирования возникает шестнадцатеричный перенос, в результате которого тетраду покидают вместе с десятком и те шесть единиц, которые принадлежат тетраде. Чтобы восстановить верное значение этой тетрады, необходимо к ней добавить 0110 (шесть). 8 1000 + 91001 17 1 0001 0110 Коррекция(+6) 0111
Таким образом, из сказанного выше можно сформулировать следующие правила потетрадного сложения чисел в BCD-кодах. § Если при потетрадном сложении перенос в соседнюю старшую тетраду не возникает, то результат суммирования не требует коррекции. § Коррекция результата потетрадного сложения путем добавления поправки 0110 требуется в случае, если возникает: а) потетрадный перенос в старшую тетраду; б) запрещенная комбинация. Устройство, которое работает по сформулированным выше правилам, называется одноразрядным двоично-десятичным сумматором (рис.12).
Пример: сложить числа А=169 и В=378 в BCD-коде A = 169 A = 0.0001 0110 1001 + B = 378 + B = 0.0011 0111 1000 A + B = 547 A + B = 0.0101 1110 0001 0110 0110 0.0101 0100 0111 перенос игнорируется Суммирование чисел с разными знаками в BCD-коде Отрицательные BCD-коды должны представляться в прямом, обратном или дополнительном кодах. Особенностью BCD-кодов является то, что инверсия тетрады означает дополнение до 15, а для соответствующей десятичной цифры до 9. Следовательно, необходимо убрать разницу. Один из приемов формирования обратного BCD-кода состоит в добавлении во все тетрады отрицательного числа 0110, затем их инверсии.
При сложении чисел с разными знаками возможны следующие случаи. 1) a - b ≥ 0 a = 7 0. 0111 [ a ]обр b= -31. 1100 [ b ]обр 4 10. 0011 1 0. 0100 При образовании инверсии отрицательной тетрады в нее добавляются 15 единиц. Эти 15 единиц находятся и в сумме. Но благодаря шестнадцатеричному переносу из тетрады уходит 16 единиц (15+1 − эта единица восстанавливается добавлением по цепи циклического переноса). 2) a - b < 0 a = 3 0. 0011 [ a ]обр b = -71. 1000 [ b ]обр -4 1. 1011 0. 0100 Здесь, как и в предыдущем примере, в тетраде суммы пятнадцать лишних единиц. Но при переходе от инверсной формы к прямой лишние единицы уничтожаются сами собой. Это то же самое, что от значащей части суммы вычесть пятнадцать: 1011 - 1111 = 0100. Рассмотрим несколько примеров.
A = 378 0. 0011 0111 1000 – B = 1691. 1110 1001 0110 A – B = 209 10. 0010 0000 1110 циклический перенос 1 0. 0010 0000 1111 Из последней тетрады нет переноса, таким образом, это соответствует заему в нее 16 единиц (вместо необходимых 10). Следовательно, из нее необходимо удалить лишние шесть единиц. Для этого в тетраду добавляется 10 - дополнение шести до шестнадцати: 0. 0010 0000 1111 1010 0. 0010 0000 1001 + 2 0 9 A = 169 0. 0001 0110 1001 B = 378 1. 1100 1000 0111 A–B= - 209 1. 1101 1111 0000 0110 1. 1101 1111 0110 - 0010 0000 1001 - 2 0 9 Таким образом, в тетраду производится заем, если результат: § положительный и из тетрады нет переноса; § отрицательный и из тетрады есть перенос. BCD-коды с избытком 3 Иначе говоря, это коды чисел из системы (BCD + 3). В этом коде каждая десятичная цифра ai представляется в виде двоичного эквивалента суммы ai+3. В отличие от BCD-кода код BCD+3 – самодополняющийся, но не имеющий свойства взвешенности. Применяется наиболее часто в десятичной арифметике, так как при выполнении двоичного суммирования легко выделить десятичный перенос. Возможны следующие два случая сложения чисел в BCD-коде +3: 1) a + b ≤ 9; [ (a + 3) + (b + 3) ] ≤ 15. И, следовательно, в тетраде суммы будут лишние 6 единиц. Чтобы тетрада суммы осталась тоже с избытком 3, нужно вычесть 3. 2) a + b ≥ 10; [ (a + 3) + (b + 3) ] ≥ 16. Здесь во всех случаях возникает шестнадцатеричный перенос, вместе с которым тетраду суммы покинут и шесть избыточных единиц; чтобы тетрада суммы осталась с избытком 3, надо добавить 3. Если складываются числа с разными знаками, то избыток в тетраде суммы будет равен нулю и суммирование, таким образом, сводится к правилам суммирования в BCD-коде. Пример. Выполнить сложение чисел 169 и 378 в BCD-коде +3. 0.0100 1001 1100 A = 169 0.0110 1010 1011 B = 378 0.1011 0100 0111 A + B = 547 -0011+0011+0011 0.1000 0111 1010 8 7 10 Пример. Выполнить вычитание из числа 378 числа 169 в BCD-коде +3. A = 378 0.0110 1010 1011 B = 1691.1011 0110 0011 A - B = 209 1 0.0010 0000 1110 циклический перенос 1 0.0010 0000 1111 + 0011 -0011 -0011 0.0101 0011 1100 5 3 12 Пример. Выполнить вычитание из числа 169 числа 378 в BCD-коде +3. A = 169 0.0100 1001 1100 B = 3781.1001 0101 0100 A - B = -209 1.1101 1111 0000 -0011 -0011 +1100 1.1010 1100 0011 - 0101 0011 1100 5 3 12 Правило. Если из тетрады был перенос, надо добавить +0011, если переноса не было, – 0011 (добавить 1100), независимо от знака слагаемых и знака суммы.
|
|||||||||
Последнее изменение этой страницы: 2016-04-08; просмотров: 585; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.27.33 (0.006 с.) |