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

Потехин / Домашняя #1

.doc
Скачиваний:
19
Добавлен:
16.03.2016
Размер:
303.62 Кб
Скачать

Министерство образования Российской Федерации

ТОМСКИЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ

(ТУСУР)

Кафедра телевидения и управления

(ТУ)

CЛОЖЕНИЕ ЧИСЕЛ СО ЗНАКАМИ В ПРЯМЫХ, ОБРАТНЫХ И ДОПОЛНИТЕЛЬНЫХ КОДАХ

Выполнил: студент гр. 166-1

______________Самойлов М.Б.

_________________

Проверил: преподаватель каф. ТУ

______________Потехин В.А.

_________________

Томск

2008

Дано: две пары чисел: 315 и 472, 321 и 481 числа в десятичной системе счисления.

Задание:

  • перевести данные числа в двоичную систему счисления;

  • определить для каждого числа его прямой (), обратный () и дополнительный () коды;

  • произвести сложение первой пары чисел в прямых и обратных кодах;

  • произвести сложение второй пары чисел в дополнительных кодах.

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

31510 = 1·28 + 1·25 +1·24 + 1·23 + 1·21 + 1·20 = 1001110112

100111011 - число 315, записанное в двоичной системе счисления.

0

0

1

0

0

1

1

1

0

1

1

S

S – знаковый показатель, который ставится в начале двоичного кода;

Если , то закодированное число положительное; если , то закодированное число отрицательное; если , то - это положительный знак , а  - входит в полученный результат; если , то - это отрицательный знак , а  - входит в полученный результат.

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

1

1

0

1

0

0

0

1

0

1

S

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

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

Изображения положительных чисел во всех кодах одинаково.

При сложении двух кодов необходимо учитывать:

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

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

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

31510 = 1·28 + 1·25 +1·24 + 1·23 + 1·21 + 1·20 = 1001110112

00100111011

11011000100

11011000101

47210 = 1·28 + 1·27 +1·26 + 1·24 + 1·23 = 1110110002

00111011000

11000100111

11000101000

Возможны 4 комбинации: , , и .

+

0

0

1

0

0

1

1

1

0

1

1

0

0

1

1

1

0

1

1

0

0

0

0

1

1

0

0

0

1

0

0

1

1

Таким образом

+

0

0

1

0

0

1

1

1

0

1

1

1

1

0

0

0

1

0

0

1

1

1

1

1

1

0

1

1

0

0

0

1

0

Получили . Обратный код необходимо перевести в прямой:

+

1

1

0

1

1

0

0

0

1

0

0

0

0

1

1

1

0

1

1

0

0

0

1

0

0

0

1

0

0

1

1

1

0

0

Получили , таким образом, мы получили код с «лишней» цифрой в начале. Чтобы избавиться от нее, произведем циклический перенос, т.е. прибавим ее к младшему биту кода 00010011100.

Следовательно

+

1

1

0

1

1

0

0

0

1

0

0

1

1

0

0

0

1

0

0

1

1

1

1

1

0

0

1

1

1

0

1

0

1

1

Произведем циклический перенос, т.е. к коду прибавим 1, стоящую в начале полученной суммы ().

Таким образом, получили: . Переведем в прямой код:

Произведем сложение второй пары чисел в дополнительных кодах

32110 = 1·28 + 1·26 + 1·20 = 1010000012

00101000001

11010111110

11010111111

48110 = 1·28 + 1·27 +1·26 + 1·25 + 1·20 = 1111000012

00111100001

11000011110

11000011111

Возможно 4 варианта такого сложения: , , и .

+

0

0

1

0

1

0

0

0

0

0

1

0

0

1

1

1

1

0

0

0

0

1

0

1

1

0

0

1

0

0

0

1

0

Таким образом

+

0

0

1

0

1

0

0

0

0

0

1

1

1

0

0

0

0

1

1

1

1

1

1

1

1

0

1

1

0

0

0

0

0

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

Таким образом .

+

1

1

0

1

0

1

1

1

1

1

1

0

0

1

1

1

1

0

0

0

0

1

1

0

0

0

1

0

1

0

0

0

0

0


В этом случае «лишнюю» цифру кода отбрасываем: . Получим:

+

1

1

0

1

0

1

1

1

1

1

1

1

1

0

0

0

0

1

1

1

1

1

1

1

0

0

1

1

0

1

1

1

1

0

Следовательно, получили . Обратный код необходимо перевести в прямой, для этого отбрасываем «лишнюю» цифру полученного кода: ; инвертируем обратный код и прибавим к нему единицу.

Таким образом, .

Вывод:

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