Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическая работа №2. Выполнение арифметических операций в двоичной системе счисления..docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
43.93 Кб
Скачать

Практическая работа №2

Дисциплина «Архитектура ЭВМ» специальности 230115

Выполнение арифметических операций в двоичной системе счисления.

Постановка задачи.

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

  2. Выполнить арифметические действия над двоичными числами с плавающей точкой.

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

Теоретическая часть.

Двоичная арифметика

В этой главе рассмотрим выполнение микропроцессором (МП) арифметических операций с двоичными числами.

Двоичное сложение

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

Рассмотрим пример:

десятичная

двоичная

перенос

11

1111 1110

слагаемое

099

0110 0011

слагаемое

095

0101 1111

сумма

194

1100 0010

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

Двоичное вычитание

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

Рассмотрим пример:

десятичная

двоичная

заем

1

110 0000

уменьшаемое

109

0110 1101

вычитаемое

049

0011 0001

разность

060

0011 1100

Двоичные числа в дополнительном коде

Существует несколько способов представления отрицательных двоичных чисел. Большинство из них не соответствует возможностям аппаратной основы арифметико-логических устройств (АЛУ).

  • Представление числа посредством величины и знака, причем бит знака занимает самый старший разряд двоичного числа. Если число положительное - бит знака равен 0, если оно отрицательное, то этот бит равен 1.

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

  • В микроЭВМ широко используется представление отрицательных чисел в дополнительном коде (код дополнения до 2). При таком представлении исчезает двусмысленность представления нулевого результата, присущая способу в обратном коде. Формирование дополнительного кода или сокращенно дополнения состоит из двух операций получения обратного кода и дополнения единицы.

Пример:

число 410 в двоичной форме

0000 0100

обратный код числа

1111 1011

добавляемая 12

1

число 410 в дополнительно коде

1111 1100

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

Рассмотрим небольшую таблицу:

8 - разрядное двоичное число

Десятичный эквивалент

двоичного числа без знака

двоичного числа со знаком (отрицательные в дополнительном коде)

0000 0000

0

+0

0000 0001

1

+1

0000 0010

2

+2

---…---

---…---

---…---

0111 1101

125

+125

0111 1110

126

+126

0111 1111

127

+127

---…---

---…---

---…---

1000 0000

128

-128

1000 0001

129

-127

1000 0010

130

-126

---…---

---…---

---…---

1111 1101

253

-3

1111 1110

254

-2

1111 1111

255

-1

Согласно этой таблице арифметические операции над двоичными числами без знака ничем не отличаются от операций над числами со знаком. Это существенно упрощает аппаратную реализацию операций в МП.

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

Пример 1: Вычислим разность (58 – 23)

0001 0111 число 2310

1110 1001 дополнительный код 2310

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

58

0011 1010

число 5810

23

1110 1001

дополнительный код 2310

15

1 0010 0011

результат 1510

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

Пример 2: Вычисление разности (26 – 34)

0010 0010 число 3410

1101 1110 дополнительный код 3410

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

26

0001 1010

число 2610

34

1101 1110

дополнительный код 3410

-8

1111 1000

результат в дополнительном коде, значит число отрицательное

определим абсолютное значение:

1111 1000 дополнительный код разности

0000 0111 обратный код

1 единица к обратному коду

0000 1000 абсолютное значение 810