Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_4_Двоичная арифметика.doc
Скачиваний:
23
Добавлен:
10.06.2015
Размер:
114.69 Кб
Скачать

Лабораторная работа 4. Двоичная арифметика

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

При этом числа представляются в прямом, обратном или дополнительном кодах.

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

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

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

Сложение двоичных чисел

Сложение выполняется, начиная с младшего разряда, по правилам:

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10

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

Пример: Вычислить сумму А+В, если А=60 В=25

Переведем оба числа в двоичную систему счисления и получим прямые коды для них. Для наглядности и так как числа небольшие возьмем 8-ми разрядные сетки.

6010= 1111002

2510= 110012

1 1

+

0

0 1 1 1 1 0 0

Прямой код числа 60

0

0 0 1 1 0 0 1

Прямой код числа 25

0

1 0 1 0 1 0 1

Прямой код результата

Результат положителен, переведем его в 10-ю систему:

1 0 1 0 1 0 1(2) =1*26 +0*25 +1*24 + 0*23 +1*22 +0*21 +1*20= 64+16+4+1=85

6 5 4 3 2 1 0

Вычисление разности.

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

Рассмотрим пример: А-В= 988,15 – 547,58.

Данный пример можно представить, как сложение двух чисел: положительного А=988,15 и отрицательного В=-547,58. В полученном выражении В – отрицательное и по абсолютной величине меньше чем А.

Сложение обратных кодов.

В этом случае поступают следующим образом.

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

0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1. 1 0 0 1 0 1 0

+

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0. 0 1 1 0 1 0 1

0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0. 0 0 1 0 0 1 1

+

10

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0. 1 0 0 1 0 0 0

1

0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0. 1 0 0 1 0 0 1

Впр

Воб

Апр

Сложение дополнительных кодов.

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

Число В в обратном, дополнительном коде:

0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1. 1 0 0 1 0 1 0

Впр

+

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0. 0 1 1 0 1 0 1

Воб

 

1

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0. 0 1 1 0 1 1 0

ВДоп

После этого вычисляется А+ВДоп. Получаемая в знаковом разряде дополнительная единица отбрасывается:

+

1

111111111111110111011100.0110110

0

000000000000001111011100.0010011

10

000000000000000110111000.1001001

0

000000000000000110111000.1001001

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

А-В=988,15-547,58=440,57

Перевод числа с помощью схемы Горнера:

1 1 0 1 1 1 0 0 0,1 0 0 1 0 0 1(2) =1*28+1*27+1*25+1*24+1*23+1*2-1+1*2-4+1*2-7

8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7

≈440,57

Вычисление разности В – А (А>B).

Сложение обратных кодов.

Отрицательное число А переводится из прямого в обратный код и складывается с числом В. Затем биты цифровой части результата инвертируется.

0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0. 0 0 1 0 0 1 1

+

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1. 1 1 0 1 1 0 0

0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1. 1 0 0 1 0 1 0

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1. 0 1 1 0 1 1 0

1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0. 1 0 0 1 0 0 1

Апр

Аоб

Впр

Сложение дополнительных кодов.

Число А переводится в обратный дополнительный код:

0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0. 0 0 1 0 0 1 1

Апр

+

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1. 1 1 0 1 1 0 0

Аоб

 

1

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1. 1 1 0 1 1 0 1

АДоп

После этого вычисляется АДоп+В, затем в прямой код инвертруются биты цифровой части результата и к младшему разряду прибавляется единица.

+

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1. 1 1 0 1 1 0 1

АДоп

0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1. 1 0 0 1 0 1 0

Впр

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1. 0 1 1 0 1 1 1

+

1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0. 1 0 0 1 0 0 0

1

1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0. 1 0 0 1 0 0 1

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

1 1 0 1 1 1 0 0 0.1 0 0 1 0 0 1 (2) =1*28 + 1*27 + 1*25 + 1*24 + 1*23 + 1*2-1 +

8 7 6 5 4 3 2 1 0 -1 -2 -3 -4- 5 -6 -7

1*2-4+1*2-7 ≈ -440,57