Материал: Методические указания к практическим занятиям по дисциплине «Модели безопасности компьютерных систем» для студентов специальности 090301 «Компьютерная безопасность». Гончаров И.В., Остапенко А.Г

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Пример:

Вычислить произведение 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

Источник: https://studfile.net/preview/16565081/