
Потехин / Дом#1
.doc
Федеральное Агентство по Образованию РФ
ТОМСКИЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ
(ТУСУР)
Кафедра телевидения и управления
(ТУ)
CЛОЖЕНИЕ ЧИСЕЛ СО ЗНАКАМИ В ПРЯМЫХ, ОБРАТНЫХ И ДОПОЛНИТЕЛЬНЫХ КОДАХ
Выполнил: студент гр. 146-2
______________Верховин В.В.
_________________
Проверил: преподаватель каф. ТУ
______________Потехин В.А.
_________________
Томск
2008
Дано: Пары чисел: 1068(обр) и 7С16(доп), 2078 и С016, 876510 и 950010.
Задание:
-
перевести данные числа в двоичную систему счисления;
-
определить для каждого числа его прямой (
), обратный (
) и дополнительный (
) коды;
-
произвести сложение первой пары чисел в дополнительных кодах;
-
произвести сложение второй пары чисел в обратных кодах.
-
произвести сложение третьей пары чисел в прямых кодах
Произведем сложение первой пары чисел в дополнительных кодах
A = 1558 (обр.) = 11011012 (обр.) = 11011102 (доп.) = 00100102 (пр.) = 1810
В = 7С16 (доп.) = 11111002 (доп.) = 11110112 (обр.) = 00001002 (пр.) = 410
Возможны 4 комбинации: А+В; А-В; -А+В; -А-В.
-
А+В
+
Апр
0
0
0
0
1
0
0
1
0
Впр
0
0
0
0
0
0
1
0
0
S=22
0
0
0
0
1
0
1
1
0
Полученное число 00.0010110
-
А-В
•
•
•
•
•
+
Апр
0
0
0
0
1
0
0
1
0
Вдоп
1
1
1
1
1
1
1
0
0
S=14
1
0
0
0
0
0
1
1
1
0
Получили код с «лишней» цифрой в начале, которая отбрасывается: 00.0001110
-
-А+В
•
•
+
Адоп
1
1
1
1
0
1
1
1
0
Впр
0
0
0
0
0
0
1
0
0
S= -14
1
1
1
1
1
0
0
1
0
Обратный код необходимо перевести в прямой: 11.0001101
-
-А-В
•
•
•
•
•
•
•
+
Адоп
1
1
1
1
0
1
1
1
0
Вдоп
1
1
1
1
1
1
1
0
0
S= -22
1
1
1
1
1
0
1
0
1
0
Получили код с «лишней» цифрой в начале, которая отбрасывается.
Обратный код необходимо перевести в прямой: 11.0010101
Произведем сложение второй пары чисел в обратных кодах
A = 2078 = 100001112 (пр.) = 011110002 (обр.) = 011110012 (доп.) = 13510
В = С016 = 110000002 (пр.) = 001111112 (обр.) = 010000002 (доп.) = 19210
Возможны 4 комбинации: А+В; А-В; -А+В; -А-В.
-
А+В
•
+
Апр
0
0
1
0
0
0
0
1
1
1
Впр
0
0
1
1
0
0
0
0
0
0
S=327
0
1
0
1
0
0
0
1
1
1
Видно переполнение, но число положительное: 0.101000111
-
А-В
•
•
•
•
•
•
+
Апр
0
0
1
0
0
0
0
1
1
1
Вобр
1
1
0
0
1
1
1
1
1
1
S= -57
1
1
1
1
0
0
0
1
1
0
Обратный код необходимо перевести в прямой: 11.00111001
-
-А+В
•
•
•
•
+
Аобр
1
1
0
1
1
1
1
0
0
0
Впр
0
0
1
1
0
0
0
0
0
0
S=57
1
0
0
0
0
1
1
1
0
0
0
Получили код с «лишней» цифрой в начале. Чтобы избавиться от нее, произведем циклический перенос, т.е. прибавим ее к младшему биту кода 00.00111001
-
-А-В
•
•
•
•
•
•
+
Аобр
1
1
0
1
1
1
1
0
0
0
Вобр
1
1
0
0
1
1
1
1
1
1
S= -327
1
1
0
1
0
1
1
0
1
1
1
Получили код с «лишней» цифрой в начале. Чтобы избавиться от нее, произведем циклический перенос, т.е. прибавим ее к младшему биту кода 1.010111000
Обратный код необходимо перевести в прямой: 1.101000111
Произведем сложение третьей пары чисел в прямых кодах
A = 876510 = 00100010001111012 (пр.)
В = 950010 = 00100101000111002 (пр.)
-
A+B
•
•
•
•
•
+
Апр
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
Впр
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
S= 18265
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1