русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Алгебраическое сложение с использованием дополнительного кода.


Дата добавления: 2014-09-06; просмотров: 2282; Нарушение авторских прав


Пример. Сложить два десятичных числа 0 831 и 1 376.

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

N2 = 1 376 в дополнительном коде N2ДОП = 1 624

Далее произведём сложение с передачей переносов в старшие разряды.

Переносы 11

Первое слагаемое N1 0 831

Второе слагаемое N2 1 624

---------

Сумма N1 + N2 0 455

Знаковые разряды суммируются по правилам сложения двоичных чисел, но

возникающие переносы отбрасываются.

В двоичной системе счисления дополнительный код формируется по правилу:

Цифры всех разрядов кроме знакового, инвертируются и в младший разряд прибавляется единица. Пример. N = 1 101102; NДОП = 1 010102.

 

Пример.Сложить два двоичных числа N1 = 0 10110 и N2 = 1 01101.

Переносы 11 11

Первое слагаемое N1 0 10110

Второе слагаемое N2 1 01010

------------

Сумма N1 + N2 0 01001 Перенос из знакового разряда отбрасываем.

 

Пример.Сложить два двоичных числа N1 = 1 10110 и N2 = 0 01101. По отношению к предыдущему примеру знаки слагаемых изменены на обратные. Очевидно, ожидаемый результат N1 + N2 = 1 01001.

Переносы

Первое слагаемое N1 0 10110

Второе слагаемое N2 1 01010

------------

Сумма (N1 + N2)ДОП 110111

 

Полученный результат есть число 1 01001 в дополнительном коде, то есть

N1 + N2 = 1 01001 = (N1 + N2)ДОП = 110111.

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

 

1.1.7 Выполнение операции умножения в двоичной системе счисления

При умножении определяются знак и модуль числа. Знак произведения определяя-ется суммированием знаковых разрядов без переноса (суммированием по модулю 2).



Абсолютное значение произведения (модуль) получают перемножением чисел без учёта их знаков.

 

Пример.Перемножить двоичные числа 1101 и 1011.При перемножении формируют-ся частичные произведения, которые суммируются с соответствующими сдвигами от-носительно друг друга.

1101 множимое

×1011 множитель

---------

1101 1-е частичное произведение

+ 1101 2-е частичное произведение

+ 0000 3-е частичное произведение

+1101 4-е частичное произведение

---------------

10001111 произведение.

В рассматриваемом примере необходимо суммировать одновременно несколько частичных произведений, что существенно затруднит формирование переносов.

Поэтому в цифровых устройствах ЦУ процесс суммирования частичных произве-дений осуществляют последовательно: формируется первое частичное произведение, к нему с соответствующим сдвигом прибавляют второе частичное произведение, к полученной сумме со сдвигом прибавляют следующее частичное произведение и так далее, пока не будут просуммированы все частичные произведения. Ниже приведён пример перемножения чисел 1101 и 1011. Процесс суммирования начинается с младшего частичного произведения, а частичные суммы сдвигаются вправо.

Структурная схема устройства, осуществляющего перемножение двух двоичных чисел (операционного устройства ОУ), приведена на рисунке ПР 2.1.

Состав и назначение функциональных узлов при перемножении двоичных чисел:

R1 – четырёхразрядный регистр хранения множителя; R2 – четырёхразрядный регистр хранения множимого; R3 – пятиразрядный (для учёта переносов) регистр результата; См – пятиразрядный сумматор; Сч – счётчик числа повторений цикла.

Так как результат произведения – 8-разрядное число, для хранения результата используем регистр R2, замещая в нём разряды множителя на младшие разряды произведения. Регистр R3' - регистр временного хранения (в течение времени суммирования) содержимого регистра R3.

 

1101 множимое

×1011 множитель

-----------------

1101 1-е частичное произведение

0110 1 сдвиг на один разряд вправо

+ 1101 2-е частичное произведение

10011 1 сумма 1-го и 2-го частичных произведений

01001 11 сдвиг на один разряд вправо

+ 0000 3-е частичное произведение

00100 111 сдвиг на один разряд вправо

+ 1101 4-е частичное произведение

1000 1111 произведение.

 

Рисунок ПР 2.1 – Структурная схема устройства умножения двоичных чисел (ОУ)

 

Работа перемножителя.Последовательность действий при умножении чисел 1011 и 1101 приведена в таблице ПР 2.1. Для получения результата:

1)получают частичные произведения множимого на цифры разрядов множителя, начиная со старших разрядов;

2) суммируют частичные произведения с числом, находящимся в регистре R3;

3) сдвигают содержимое регистров R2 и R3 на один разряд вправо;

4) пересылают содержимое младшего разряда R3 в старший разряд регистра R2. Процесс повторяется, пока не будут использованы все цифры множителя.

Работа устройства умножения двоичных чисел (операционного устройства ОУ) осу-ществляется по сигналам у1…у7 устройства управления (УУ), на схеме не показанного:

у1: R2← Сдв Пр(R2) – сдвиг содержимого регистра R2 на один разряд в право;

 

у2: R2 [4]← R3 [1] – пересылка в старший разряд регистра R2 содержимого

младшего разряда регистра R3;

у3: R3← См – занесение в R3 результата суммирования;.

у4: R3← 0 – установка регистра R3 в ноль;

у5: R3 ← Сдв Пр (R3) – сдвиг содержимого регистра R3 на один разряд вправо;

у6: Сч ← n - занесение в счётчик числа разрядов множителя;

у7: Сч ← (СЧ) – 1 – уменьшение содержимого счётчика на единицу;

х1: R2[1] = 1 – признак наличия в младшем разряде R2 единицы;

х2: (Сч) = 0 – признак равенства нулю содержимого счётчика; признак окончания

вычислений.

 

Таблица 1.3 - Последовательность действий при перемножении двоичных чисел

Множимое R1 Старшие разряды произве- дения R3. Множитель и младшие разряды ре- зультата R2 Выполняемое действие
1. Исходное состояние
  2. 1-е частичное произведение
  0 ←1101   3. 1-я частичная сумма; R2 [4]← R3 [1]
  → 1101 4. R2← Сдв Пр(R2); R3 ← Сдв Пр (R3)
  5. 2-е частичное произведение
  1← 0011   6. 2-я частчная сумма; R2 [4]← R3 [1]
  → 1110 7. R2← Сдв Пр(R2); R3 ← Сдв Пр (R3)
  8. 3-е частичное произведение
  0← 1001   9. 3-я частичная сумма; R2 [4]← R3 [1]
  → 1111 10. R2← Сдв Пр(R2); R3 ← Сдв Пр (R3)
  11. 4-е частичное произведение
  1←0001   12. 4-я частичная сумма; R2 [4]← R3 [1]
  → 1111 13. R2← Сдв Пр(R2); R3 ← Сдв Пр (R3)
  1000 1111 Произведение. Окончание вычислений.

 

В таблице определён состав микроопераций, однаконе показаны операции установки ОУ в «0», запись в счётчик числа разрядов множителя n и его уменьшения при выполнении микропрограммы; не показаны операции записи в регистры R1 и R2 множимого и множителя, не учтены признаки х1 и х2.

 

1.1.8 Выполнение операции сложения в двоично-десятичной системе счисления. Коррекция суммы

Способ суммирования десятичных цифр зависит от того, какой двоичный код выбран для представления десятичных цифр. Чаще других применяется код 8421 (таблица 1.3).

Название кода составлено из весовых коэффициентов разрядов двоичного кода.

Таблица 1.3 – Кодирование десятичной цифры кодом 8421

Десятичная цифра
Двоичное цифра

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

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

Десятичная система Код 8421

Переносы 1← 11 1←

Первая цифра 6 0110

Вторая цифра + 2 +0010

Сумма 9 1001

Коррекция ------

Результат 1001

Полученное число 10012 = 9, меньше 10 и коррекция суммы не требуется.

Пример 2.Сложить десятичные цифры 8 и 9.

Десятичная система Код 8421

Переносы 1 ← 0 ← 1← 0←

Первая цифра 8 1000

Вторая цифра + 9 +1001

Сумма 7 0001

Коррекция + 0110

Результат 0111

Сложение двух единиц в разряде 8 даёт в соответствующем разряде суммы «0» и перенос «1» из разряда 8. Появление этого переноса уменьшает сумму не на 10, а на 16 (вместо 100012 = 17 имеем 00012 = 1). Уход из суммы шести лишних единиц компенсируется прибавлением 6 единиц в ходе коррекции.

Пример 3. Сложить десятичные цифры 6 и 7.

Десятичная система Код 8421

Переносы 1 ← 0 ← 11 0←

Первая цифра 6 0110

Вторая цифра + 7 +0111

Сумма 3 1101

Коррекция + 0110

Результат 1 ← 0011

перенос

Здесь суммирование десятичных цифр в коде 8421 приводит к числу 11012 (1310).

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

возникает перенос из разряда 8, уменьшающий сумму на 16 единиц. Таким образом,

прибавление 6 и вычитание 16 обеспечивает требуемое уменьшение суммы на 10 единиц.

ПЗ 1. 2 Алгебраическое сложение с использованием дополнительного кода.

Пример 4. Сложить два десятичных числа 0 831 и 1 376.

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

N2 = 1 376 в дополнительном коде N2ДОП = 1 624

Далее произведём сложение с передачей переносов в старшие разряды.

Переносы 11

Первое слагаемое N1 0 831

Второе слагаемое N2 1 624

---------

Сумма N1 + N2 0 455

Знаковые разряды суммируются по правилам сложения двоичных чисел, но

возникающие переносы отбрасываются.

В двоичной системе счисления дополнительный код формируется по правилу:

Цифры всех разрядов кроме знакового, инвертируются и в младший разряд прибавляется единица. Пример. N = 1 101102; NДОП = 1 010102.

 

ПЗ 1. 3 Суммирование многоразрядных десятичных чисел. Получение дополнительного кода 8421 отрицательных чисел

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

Пример 5. Сложить числа N1 = 836 и N2 = -298 (1298).

Дополнительный код числа -298. N2ДОП = 1702

 

Переносы 1

Первое число N1 0836

Второе число N2ДОП + 1702

Сумма N1 + N2ДОП 0538

Пример 6. Сложить числа N1 = -836 и N2 = 298.

Дополнительный код числа -836. N1ДОП = 1164

 

Переносы 11

Первое число N1ДОП 1164

Второе число N2 + 0298

Сумма N1ДОП + N2 1538

Дополнение до 9 (обозначим а'i) десятичной цифры аi может быть получено прибавлением 6 и затем нахождением дополнения до 15 для этой суммы:

а'I = 9 - аi = 9 + 6 – (аi + 6) = 15 – (аi + 6).

При представлении десятичных цифр четырёхразрядным кодом 8421 дополнение до 15 получается простым инвертированием цифр разрядов двоичного кода.

Пример 7.Получить дополнительный код числа А = - 256.

1. Представляем число А10 = -256 в двоично-десятичном коде 8421:

А2-10 = 1 0010 0101 0110.

2. Во все тетрады добавляем 610 = 01102 :

1 0010 0101 0110

+ 0110 0110 0110

1 1000 1011 1100

3. Получаем обратный код, инвертируя цифры разрядов (кроме знакового):

АОБР 2-10 = 1 0111 0100 0011

АОБР 10 = 7 4 3

Видно, что каждая тетрада в АОБР 2-10 представляет собой дополнение до 9 к тетрадам прямого кода А.

4. Получаем дополнительный код АДОП 2-10, прибавляя к младшему разряду АОБР 2-10 единицу:

АДОП 2-10 – 1 0111 0100 0100.

 



<== предыдущая лекция | следующая лекция ==>
Арифметические основы ЭВМ | Представление информации в ЭВМ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.014 сек.