Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1105

.pdf
Скачиваний:
3
Добавлен:
30.04.2022
Размер:
778.79 Кб
Скачать

Пример:

Вычислить произведение 17(10) * 12(10) в двоичной форме.

17(10)=00010001(2); 12(10)=00001100(2)

00010001 *00001100

+ 10001 - сдвинуто на 2 разряда 10001 - сдвинуто на 3 разряда

11001100 = 204(10)

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

Деление

Деление - операция, обратная умножению, поэтому при делении двоичных чисел, так же как и в десятичной системе счисления, операция вычитания повторяется до тех пор, пока уменьшаемое не станет меньше вычитаемого. Число этих повторений показывает, сколько раз вычитаемое укладывается в уменьшаемом [2].

Пример:

Вычислить 204(10) /12(10) в двоичном коде.

204(10)=11001100(2); 12(10)=1100(2)

-11001100 1100 1100 10001, т.е. результат 10001(2)=17(10)

01 - 0

011 - 0

110

-0

-1100

1100

0

9

Задания и контрольные вопросы

Используя десятичное число из таблицы ниже решить следующие задачи над числом:

перейти от десятичного числа к двоичной форме и

обратно;

перейти от двоичного числа к восьмеричной форме и

обратно;

перейти от двоичного числа к шестнадцатеричной форме и обратно;

взять число из следующего варианта. (с 16-20 берут число вариантов с 1-5) и складывают, вычитают, умножают и делят на число из своего варианта.

 

 

 

 

Таблица 1

 

Задания для вариантов

 

 

Варианты

1-5

6-10

11-15

16-20

 

Число

244

356

127

401

 

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

Контрольные вопросы

1.Представление числа в любой позиционной системе.

2.Алгоритм перехода от двоичной системы к десяте-

ричной.

3.Алгоритм перехода от десятеричной системы к дво-

ичной.

4.Алгоритм перехода от двоичной системы к восьмеричной и обратно.

5.Алгоритм перехода от двоичной системы к шестнадцатеричной и обратно.

6.Алгоритм сложения двоичных чисел.

7.Алгоритм вычитания двоичных чисел.

8.Алгоритм умножения двоичных чисел.

9.Алгоритм деления двоичных чисел.

10

Практическое занятие №2 Операции с дополнительным кодом

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

Задачи практического задания:

изучить понятие дополнительный код;

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

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

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

Теоретические с ведения

Дополнительный код (ДК) строится следующим образом. Сначала формируется обратный код (ОК), а затем к младшему разряду (МЗР) добавляют 1. При выполнении арифметических операций положительные числа представляются в прямом коде (ПК), а отрицательные числа - в ДК, причем обратный перевод ДК в ПК осуществляется аналогичными операциями в той же последовательности. На рис. 1 рассмотрена цепь преобразований числа из ПК в ДК и обратно в двух вариантах [3].

ПК (-)

инверс

 

+1

 

 

инверс

 

 

 

+1

 

ПК (-)

ОК

 

ДК

 

ДК

 

числа

(кроме

 

 

 

(кроме

 

 

 

числа

 

 

 

 

 

 

 

 

 

 

знака)

 

 

 

 

знака)

 

 

 

 

 

 

 

 

 

 

(-)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

инверс

 

 

 

 

инверс

 

 

 

 

 

 

ПК

 

+1

 

 

 

 

 

+1

 

ПК

ОК

 

ДК

 

ДК

 

модуль

 

 

 

 

 

 

 

 

модуль

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(-)

Рис. 1. Два варианта преобразования чисел из ПК в ДК и обратно

11

Пример:

Число -5(10) перевести в ДК и обратно (первый вариант).

1

 

101

ПК (-)

1 011

ДК (-)

 

 

 

 

 

 

 

 

 

1

 

010

ОК (-)

1 100

 

ДК (-)

+

 

1

 

+

1

 

 

 

 

 

 

 

 

 

 

1

 

011

ДК (-)

1 101

 

ПК (-)

 

 

 

 

 

 

 

 

 

Пример:

Число -5(10) перевести в ДК и обратно (второй вариант).

0

 

101 мод. ПК

1 011

ДК (-)

 

 

 

 

 

 

 

 

 

1

 

010

ОК (-)

0 100

 

ДК

+

 

1

 

+

1

 

 

 

 

 

 

 

 

 

 

1

 

011

ДК (-)

0 101

 

мод. ПК

 

 

 

 

 

 

 

 

 

Использование ДК для представления отрицательных чисел устраняет двусмысленное представление нулевого результата (возникновение двух нулей: +0 и -0), так как -0 исчезает.

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

ПК

0

Мод.дв.числа

 

1

Мод.дв.числа

ОК

 

 

 

 

 

 

 

0

Мод.дв.числа

 

1

Мод.дв.числа

ДК

0

Мод.дв.числа

 

1

 

ОК+1МЗР

 

 

а)

 

 

 

б)

Рис. 2. Представление чисел в ЭВМ:

а) - положительное число; б) - отрицательное число

12

Существует следующее общее правило: при алгебраическом сложении двух двоичных чисел, представленных обратным (или дополнительным) кодом, производится арифметическое суммирование этих кодов, включая разряды знаков. При возникновении переноса из разряда знака единица переноса прибавляется к МЗР суммы кодов при использовании ОК и отбрасывается при использовании ДК. В результате получается алгебраическая сумма в обратном (или дополнительном) коде [1].

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

-знаковый разряд равен нулю: результат – положительное число в ПК;

-знаковый разряд равен единице: результат – отрицательное число в ДК.

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

Пример:

Вычислить алгебраическую сумму 58 - 23.

58(10) 0011 1010(2)

- ПК

-28(10) 1001 0111(2)

- ПК

1110 1001(2)

- ДК

Число отрицательное - необходимо перевести в ДК (быстрый перевод)

0011 1010

Перенос из знакового разряда отбрасываем.

+

Число является положительным в ПК.

1110 1001

1 0010 0011(2)

(ПК) = 35(10)

перенос

 

13

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

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

Алгебраическое суммирование с двумя переносами.

-3-1=-4

 

 

101(2)

 

 

 

111(2)

ПК 101(2)

 

 

 

-3(10)

ДК

+

 

 

 

 

 

101(2)

ПК 111(2)

 

 

111(2)

 

 

-1(10)

ДК

1 100(2)

ДК=-4(10)

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

перенос

 

Имеются переносы в знаковый разряд и из знакового разряда вычисляемой суммы, поэтому переполнения нет.

Результат - отрицательное число в ДК, равное - 4.

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

2+2=4

 

010(2)

 

 

 

010(2)

 

 

 

2(10)

ПК

+

 

 

 

 

 

010(2)

 

 

010(2)

 

 

2(10)

ПК

0 100(2)

ДК = ?(10)

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

перенос

 

14

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

Число 4 нельзя представить в прямом коде. Формальный результат равен -4.

Алгебраическое суммирование с одним переносом. (Отрицательное переполнение).

-3-2=-5

 

 

101(2)

 

 

111(2)

ПК 101(2)

 

 

-3(10)

ДК

+

 

 

010(2)

ПК 110(2)

 

110(2)

 

-2(10)

ДК

 

 

 

1 011(2)

ДК=?(10)

 

 

 

 

0перенос

Число -5 нельзя представить 3-битовой комбинацией. Формальный результат равен +3.

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

 

 

 

 

Десятичная система

ДК

 

ПК

 

 

 

счисления

 

 

 

 

 

 

 

Рис. 3. Схема перевода из ДК в десятичную систему

Однако существует прямой способ перевода числа из ДК в десятичную систему без использования промежуточного перевода в ПК.

15

Рассмотрим машинное слово произвольной длины (рис. 4). При прямом способе перевода десятичное число со знаком формируется как сумма разрядов со своими весами и знаками (старший N-й разряд имеет отрицательный вес).

Номер разряда

N-1 N-2 N-3

. . .

1

0

 

 

 

 

 

 

 

 

Знак

 

 

 

 

 

Вес разряда

-2N-1 2N-2 2N-3

 

21

20

Рис. 4. Машинное слово длиной N

 

 

Проиллюстрируем перевод чисел из ДК в десятичную систему счисления примерами.

Пример:

Перевести число 1110 из ДК в десятичную систему.

1 1 1 0(2) (ДК) = -8+4+2 = -2(10)

Вес -23 22 21 20

Можно проверить правильность перевода, используя промежуточный перевод числа в ПК:

1 110 число в ДК инверсия

1001

+1

1010 число в ПК, т.е. 1010(2) = -(0+21+0) = -2(10)

16

Задание и контрольные вопросы

Используя десятичное число из таблицы ниже решить следующие задачи над числом:

перейти от числа к прямому коду и далее, к дополнительному;

выполнить операцию сложения над двумя числами, представленными дополнительным кодом;

выполнить операцию вычитания над двумя числами, представленными дополнительным кодом;

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

 

 

 

 

Таблица 2

 

Задания для вариантов

 

 

Варианты

1-5

6-10

11-15

16-20

 

Число 1

44

36

91

45

 

Число 2

35

77

21

63

 

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

Контрольные вопросы

1.Понятие и особенности построения двоичного ко-

да.

2.Цели и задачи применения дополнительного кода.

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

4.Алгоритм сложения чисел, представленных дополнительным кодом.

5.Алгоритм вычитания чисел, представленных дополнительным кодом.

6.Понятия переполнения разрядной решетки.

17

7.Алгебраическое суммирование с двумя переноса-

ми.

8. Алгебраическое суммирование с одним перено-

сом.

9.Алгоритм деления чисел, представленных дополнительным кодом.

10.Прямой способ перевода числа из ДК в десятичную систему без использования промежуточного перевода в ПК.

18