
Потехин / Домашняя №1
.doc
Министерство науки и образования Российской Федерации
ТОМСКИЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ
(ТУСУР)
Кафедра телевидения и управления
(ТУ)
CЛОЖЕНИЕ ЧИСЕЛ СО ЗНАКАМИ В ПРЯМЫХ, ОБРАТНЫХ И ДОПОЛНИТЕЛЬНЫХ КОДАХ
Выполнил: студент гр. 169
______________Волков Р.С.
_________________
Проверил: преподаватель каф. ТУ
______________Потехин В.А.
_________________
Томск
2011
Дано: A=8285 и B=9321, 5222 и 4523, числа в десятичной системе счисления.
Задание:
-
перевести данные числа в двоичную систему счисления;
-
определить для каждого числа его прямой, обратный и дополнительный коды;
-
произвести сложение чисел со знаками в прямых и обратных кодах;
-
произвести сложение чисел со знаками в дополнительных кодах;
-
произвести сложение двоично-десятичных чисел.
Для перевода целых чисел из системы с основанием 10 в систему с основанием 2 необходимо произвести последовательный ряд делений исходного числа на новые основания системы, причем действия производятся в исходной системе счисления. Последовательность остатков, начиная с последнего, дает число в новой системе счисления. Деление производится до тех пор, пока частное не получится меньше основания системы, последнее частное дает старшую степень числа.
A=8285D = 1·213 + 1·26 +1·24 + 1·23 + 1·22 + 1·20 = 10000001011101B
10000001011101B - число 8285, записанное в двоичной системе счисления.
A |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
|
S
Aпр. = 20135O = 205DH
S – знаковый показатель, который ставится в начале двоичного кода;
20135O - число 8285, записанное в восьмеричной системе счисления;
205DH - число 8285, записанное в шестнадцатеричной системе счисления.
Если
,
то закодированное число положительное;
если
,
то закодированное число отрицательное;
если
,
то
- это положительный знак , а
-
входит в полученный результат; если
,
то
- это отрицательный знак , а
- входит
в полученный результат.
При переходе от двоичной системы счисления к восьмеричной (шестнадцатеричной) знаковый показатель не учитывается. Перевод из двоичной системы счисления в восьмеричную (шестнадцатеричную) осуществляется разбиванием двоичного кода на триады (тетрады), начиная с конца, и согласно кодировке записываем число в восьмеричной (шестнадцатеричной) системеуцатеричную восьмеричнуютему счисленияичную (численияньше основаниясчисления.ия.ледовательный ряд делений исходного числ счисления.
A |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
|
S
Aобр. = 157642O = DFA2H
Aдоп. = Aобр. + 1 - формула, для вычисления дополнительного кода числа.
При сложении двух кодов необходимо учитывать:
- в этом случае
пишем в результат сложения, а
переносим в следующий столбец.
- в этом случае
пишем в результат сложения и
переносим в следующий столбец.
|
|
S |
S |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ |
Aобр. = |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
Aдоп.=Aобр.+ 1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
Aдоп. = |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
|
S
Aдоп. = 150643O= D1A3H
Сделаем проверку:
|
|
S |
S |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ |
Aпр. = |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
Aобр. = |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
|
S=Aпр.+Aобр.= |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Сумма прямого и обратного кода одного числа равна 1.
Произведем те же операции при обработке числа B=9321:
B=9321D = 1·213 + 1·210 +1·26 + 1·25 + 1·23 + 1·20 = 10010001101001B
10010001101001 - число 9321, записанное в двоичной системе счисления.
B |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
|
S
22151O - число 9321, записанное в восьмеричной системе счисления;
2469H - число 9321, записанное в шестнадцатеричной системе счисления.
B |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
S
Bобр.= 155626O + DB96H
Bдоп. = Bобр. + 1
|
|
S |
S |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ |
Bобр. = |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
Bдоп.=Bобр.+ 1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
Bдоп. = |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
|
S
Bдоп. = 155627O= DB97H
Сделаем проверку:
|
|
S |
S |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ |
Bпр. = |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
Bобр. = |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
|
S=Bпр.+Bобр.= |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Сумма прямого и обратного кода одного числа равна 1.
Произведем
сложение прямых и обратных кодов заданных
чисел. Возможны 4 комбинации:
,
,
и
.
|
|
|
• |
|
• |
• |
• |
|
• |
|
|
+ |
|
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
|
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
|
|
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
Таким образом
|
|
• |
• |
• |
• |
• |
• |
|
|
|
|
|
+ |
|
|
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
|
|
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
|
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
Имеем:
,
таким образом мы получили код с «лишней»
цифрой в начале. Чтобы избавиться от
нее, произведем циклический перенос,
т.е. прибавим ее к коду
:
|
S |
S |
|
|
|
|
|
|
|
|
+ |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
Следовательно
|
|
|
|
|
|
|
• |
• |
• |
• |
|
+ |
|
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
|
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
|
|
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
Получили
.
Обратный код необходимо перевести в
прямой: