Модифицированный обратный код
Лабораторная работа № 2
Тема : Представление чисел и арифметические операции в прямом,
Обратном и дополнительном кодах в машинах с фиксированной запятой
Цель – освоить арифметические основы компьютерных операций
Задание:
Выполнить сложение чисел в обратном и дополнительных кодах и результат проверить переводом в десятичную систему счисления:
1. А+В в дополнительном коде для случая а и б;
2. А+С в обратном коде для случая а и б;
3. В+С ( для случая а) в модифицированном дополнительном коде;
4. В+С ( для случая б) в модифицированном обратном коде.
5. Числа D E представлены в обратном коде. Выполнить сложение для случая а и б и результат проверить переводом в десятичную систему счисления.
6. Числа F G представлены в дополнительном коде. Выполнить для случая а и б сложение и результат проверить переводом в десятичную систему счисления.
Варианты заданий представлены в таблице.
Для каждой из переменных приведены по два набора значений.
Варианты заданий ( по номеру в списке группы)
№ варианта | А | - В | - С | D | E | F | G | |
1 | а б | 12 26 | -25 -9 | -31 -11 | 0, 11001 0, 11101 | 1, 11010 1, 00110 | 0, 10100 0, 00011 | 1, 10101 1, 10011 |
2 | а б | 13 27 | -28 -7 | -35 -12 | 0, 11011 0, 11100 | 1, 11000 1, 00100 | 0, 10101 0, 00111 | 1, 11101 1, 00101 |
3 | а б | 14 29 | -27 -9 | -34 -11 | 0, 11001 0, 11001 | 1, 11110 1, 00000 | 0, 10111 0, 00011 | 1, 11101 1, 10011 |
4 | а б | 15 25 | -23 -8 | -37 -14 | 0, 11010 0, 11011 | 1, 11100 1, 00111 | 0, 10111 0, 00101 | 1, 10101 1, 00001 |
5 | а б | 17 28 | -21 -19 | -35 -10 | 0, 11001 0, 11101 | 1, 11010 1, 00110 | 0, 10100 0, 00011 | 1, 10101 1, 10011 |
6 | а б | 17 27 | -21 -19 | -39 -12 | 0, 11011 0, 11100 | 1, 11000 1, 00100 | 0, 10101 0, 00111 | 1, 11101 1, 00101 |
7 | а б | 14 34 | -20 -9 | -37 -17 | 0, 11001 0, 11001 | 1, 11110 1, 00000 | 0, 10111 0, 00011 | 1, 11101 1, 10011 |
8 | а б | 15 25 | -26 -18 | -38 -7 | 0, 11010 0, 11011 | 1, 11100 1, 00111 | 0, 10111 0, 00101 | 1, 10101 1, 00001 |
9 | а б | 12 24 | -45 -19 | -31 -12 | 0, 11001 0, 11101 | 1, 11010 1, 00110 | 0, 10100 0, 00011 | 1, 10101 1, 10011 |
10 | а б | 13 27 | -38 -17 | -30 -22 | 0, 11011 0, 11100 | 1, 11000 1, 00100 | 0, 10101 0, 00111 | 1, 11101 1, 00101 |
11 | а б | 12 26 | -21 -17 | -34 -11 | 0, 11001 0, 11001 | 1, 11110 1, 00000 | 0, 10111 0, 00011 | 1, 11101 1, 10011 |
12 | а б | 13 27 | -20 -9 | -37 -14 | 0, 11010 0, 11011 | 1, 11100 1, 00111 | 0, 10111 0, 00101 | 1, 10101 1, 00001 |
13 | а б | 14 29 | -26 -18 | -38 -10 | 0, 11001 0, 11101 | 1, 11010 1, 00110 | 0, 10100 0, 00011 | 1, 10101 1, 10011 |
14 | а б | 15 25 | -45 -19 | -39 -12 | 0, 11011 0, 11100 | 1, 11000 1, 00100 | 0, 10101 0, 00111 | 1, 11101 1, 00101 |
15 | а б | 16 24 | -38 -17 | -37 -13 | 0, 11001 0, 11001 | 1, 11110 1, 00000 | 0, 10111 0, 00011 | 1, 11101 1, 10011 |
16 | а б | 17 27 | -25 -9 | -38 -7 | 0, 11010 0, 11011 | 1, 11100 1, 00111 | 0, 10111 0, 00101 | 1, 10101 1, 00001 |
17 | а б | 14 34 | -28 -7 | -31 -12 | 0, 11001 0, 11101 | 1, 11010 1, 00110 | 0, 10100 0, 00011 | 1, 10101 1, 10011 |
18 | а б | 15 25 | -27 -9 | -30 -22 | 0, 11011 0, 11100 | 1, 11000 1, 00100 | 0, 10101 0, 00111 | 1, 11101 1, 00101 |
19 | а б | 12 24 | -23 -8 | -31 -11 | 0, 11001 0, 11001 | 1, 11110 1, 00000 | 0, 10111 0, 00011 | 1, 11101 1, 10011 |
20 | а б | 13 27 | -22 -19 | -35 -12 | 0, 11010 0, 11011 | 1, 11100 1, 00111 | 0, 10111 0, 00101 | 1, 10101 1, 00001 |
21 | а б | 19 26 | -24 -18 | -34 -11 | 0, 11010 0, 11011 | 1, 11100 1, 00111 | 0, 10111 0, 00101 | 1, 10101 1, 00001 |
22 | а б | 17 27 | -45 -19 | -37 -14 | 0, 11001 0, 11101 | 1, 11010 1, 00110 | 0, 10100 0, 00011 | 1, 10101 1, 10011 |
23 | а б | 14 34 | -38 -17 | -34 -10 | 0, 11011 0, 11100 | 1, 11000 1, 00100 | 0, 10101 0, 00111 | 1, 11101 1, 00101 |
24 | а б | 15 25 | -23 -9 | -39 -12 | 0, 11001 0, 11001 | 1, 11110 1, 00000 | 0, 10111 0, 00011 | 1, 11101 1, 10011 |
25 | а б | 12 24 | -28 -7 | -37 -17 | 0, 11010 0, 11011 | 1, 11100 1, 00111 | 0, 10111 0, 00101 | 1, 10101 1, 00001 |
|
|
|
|
Указания к выполнению:
1. Прочитать теорию о прямом, обратном и дополнительном кодах. См. п.1 Теории
2. Вспомнить правила перевода в чисел в двоичную систему счисления (СС) и обратно. « Для перевода в двоичную СС число делится на 2 и остатки записываются в обратном порядке. Для перехода из двоичной СС в десятичную число записывается как полином…» Более подробно смотри Компьютерная арифметика – pdf - файл или Системы счисления в Приложении 1.
3. Перевести в двоичную СС данные числа своего варианта.
|
|
4. Разобрать приведенные примеры выполнения операций в дополнительном и обратном кодах. См. п.2 Теории.
5. Разобрать примеры , приведенные в Приложении 2.
6. Выполнить задание для своего варианта. Проверить результаты выполнения операций переводом в десятичную СС.
7. Ответить на контрольные вопросы.
8. Оформить отчет по лабораторной работе. См пример оформления.
- титульный лист ( название работы, вариант, ФИО студента, группа…) ;
- задание и исходные данные;
- подробное выполнение по пунктам с проверкой полученных результатов.
Оформлять можно как на компьютере, так и аккуратно рукописно.
Теоретические положения
Прямой, обратный и дополнительный код
В ЭВМ схемы, реализующие операцию сложения, получаются гораздо проще и компактнее, чем схемы, выполняющие операцию вычитания. Поэтому обычно в цифровых машинах применяют только схемы сложения, а операцию вычитания заменяют сложением специально подобранных кодов чисел.
Применяются следующие коды чисел: прямой, обратный и дополнительный. Прямой код применяют при умножении и делении, а обратный и дополнительный - используют для замены операции вычитания сложением. Существуют также модифицированные обратный и дополнительный коды. Изображения положительных чисел совпадают во всех трех кодах: прямом, обратном и дополнительном.
|
|
Обратный и дополнительный коды отрицательных чисел (а также их модификации) различны.
Простановка знака суммы при алгебраическом сложении должна производиться автоматически. Знаки (+) и (–) у слагаемых могут обозначаться только при помощи сигналов, "понятных" машине, т. е. при помощи нулей и единиц. При этом следует иметь в виду, что электронные считающие элементы назад не срабатывают, а поэтому вычитание в них заменяется сложением в дополнительном или обратном кодах. Рассмотрим сначала сложение в дополнительном коде. Пусть нужно произвести следующее действие: от 176 – 27, не используя вычитание. Условимся все числа писать с одинаковым количеством цифр, равным количеству цифр в наибольшем числе: 176 – 027. Заменив число 027 его дополнением до 1000, которое называется дополнительным кодом числа 027, т. е. числом 1000 – 973 = 027, получим: 176 – (1000 – 973) = 176 + 973 – 1000.
Решение: +176
973
_1149
1000
+149
Очевидно, в этом примере можно обойтись без вычитания, так как вычитание числа 1000 можно не производить, если единица переноса в старший разряд каким-либо действием будет обращена в нуль.
Рассмотрим еще один пример: 027 - 176.
Как и прежде, заменим число 176 его дополнением до 1000.
Тогда 027 - 176 = +027
824
_851
1000
-149
Здесь единицы переноса в старший разряд не образуется, но отрицательный результат получился в виде дополнения его до 1000.
Таким образом, в наших примерах получается, что если отрицательные слагаемые заменять их дополнением до 1000, то отрицательная сумма тоже получится в виде дополнения до 1000.
Положительные числа в приведенных примерах остаются без изменения. Применим это же правило для алгебраического сложения двух отрицательных чисел:
- 176 - 527 = - (1000 - 824) - (1000 - 473) = -1000 + 824 - 1000 + 473 =
= +824
473
_1297
1000
_297
1000
-703
Правило соблюдается и в этом примере. Условимся число (–1000) обозначать перед нашими числами в виде 1, а в случае его отсутствия ставить перед числом О. Тогда 1 будет ставиться перед всеми отрицательными числами:
176 - 027 = +0.176
1.973
0.149
_
По-видимому, можно 1 заменить 1, если при использовании 1 как знака производить “сложение" цифр, заменяющих знаки (+) и (–), по определенным правилам. В первом примере это правило выглядит так:
1 - 1
176 - 027 = +0.176
1.973
0.149, т.е. “сложение” цифр, заменяющих знаки, должно идти без переноса в старший разряд.
1
Во втором примере: 027 - 176 = + 0.027
1.824
1.851
Поскольку 1 изображается (-1000), то результат 1.851 есть дополнение числа 851 до 1000, взятое со знаком минус: 1.851 à 1.149 = - 149.
В третьем примере: -176 - 527 = + 1.824
1.473
1.297
Здесь также теряется единица переноса в старший разряд при "сложении” цифр, заменяющих знаки (+) и (–). Во всех трех примерах слагаемые трехзначные, а суммы не превосходят 1000. Рассмотрим примеры, в которых сумма не меньше тысячи при трехзначных слагаемых:
+0.176
0.825
1.001
Если придерживаться правила, предложенного в предыдущих примерах, то сумма 1.001 означает (– 1000 + 001) = – 999, что неправильно. В то же время, если сдвинуть всю сумму вправо, освободив место для знака, то результат 0.1001= + 1001 будет правильным, но станет четырехзначным. Рассмотрим случай, когда оба слагаемых отрицательны.
-176 - 825 = +1.824
1.175
0.999
Результат +999 явно неправилен, и если “сложение" знаков производить по предложенному правилу, то его даже невозможно исправить. Нужно сохранить единицу переноса в старший разряд знака, что можно сделать, выделив для обозначения знаков (+) и (–) два разряда. Такой код числа называется модифицированным дополнительным кодом. В этом коде очевидно плюс следует обозначать 00, а минус 11. Тогда при четырехзначной сумме трехзначных слагаемых получим:
+00.176
00.825
01.001
В двух разрядах для знака разные цифры: 0 и 1. Сдвинув всю сумму вправо, получим правильный результат 00.1001.
Рассмотрим другой пример:
- 176 - 825 = +11.824
11.175
10.999
В знаковом разряде опять-таки разные цифры: 1 и 0. Сдвинем результат вправо, причем в первом знаковом разряде поставим 1, а в цифровых разрядах получившегося числа 11.0999 заменим первый 0 на 1, а остальное число – его дополнением до 1000. Тогда получим правильный четырехзначный результат 11.1001.
Рассмотрим, будут ли справедливы все предложенные правила в общем случае для чисел в двоичной системе счисления.
В цифровых вычислительных машинах различными кодами изображаются только двоичные числа, являющиеся правильными дробями.
Прямой код
Число Х в прямом коде условно обозначается как [Х]пр. Пусть Х – правильная двоичная дробь, положительная или отрицательная. Прямой код числа Х получается по следующему правилу.
Если Х = +0,х1х2х3…хi…хn, где х1, х2, х3…хi…хn - двоичные цифры, то
[Х]пр = Х = 0,х1х2…хn.
Если же Х = –0,х1х2х3…хi…хn, то [Х]пр = 1,х1х2...хn.
Таким образом, прямой код двоичного числа совпадает по изображению с записью самого числа, но в разряде знака стоит 0 или 1 соответственно для положительных и отрицательных чисел.
Обратный код
Обратный код числа Х обозначается [Х]обр. Как уже отмечалось, обратный код положительного числа совпадает с его прямым кодом. Поэтому при Х>0
[Х]обр = [Х]пр = Х
Для отрицательного числа обратный код получается по следующему правилу: в знаковый разряд числа вписывается единица, а в цифровых разрядах нули заменяются единицами, единицы – нулями.
Таким образом, если имеем отрицательное число Х = –0,х1,х2,... хi...хn, то его изображение в обратном коде будет
_ _ _
[Х]обр = 1,х1х2…хn,
_ _
где хi = 1, если хi = 0, и хi = 0, если хi = 1.
Пример. Х = -0,1010110; [Х]обр = 1,0101001.
В цифровых машинах при сложении обратных кодов по соответствующим правилам получают обратный код суммы.
Дополнительный код
Дополнительный код числа Х обозначается [Х]доп. При Х>О
[Х]доп = [Х]пр = Х
Дополнительный код отрицательного числа получается по следующему правилу: в знаковом разряде числа записывается единица, во всех цифровых разрядах нули заменяются единицами, а единицы нулями и к младшему цифровому разряду прибавляется единица.
Таким образом, дополнительный код отрицательного числа
Х = -0,х1х2х3…хi…хn будет:
_ _ _ _
[Х]доп = 1,х1х2х3…хn + 0,0000…1,
_ _ în разрядовþ
где хi = 1, если хi = 0, xi = 0, если xi = 1.
Пример. Х = -0,10011101; [Х]доп = 1,01100010 + 0,00000001 = 1,01100011.
Нетрудно убедиться в том, что дополнительный код отрицательного двоичного числа есть дополнение этого числа до двух, т, е. [Х]доп = 10 + Х, где 10 означает число 2 в двоичной системе счисления. При сложении дополнительных кодов по соответствующим правилам в машине получают дополнительный код суммы. Кроме обратного и дополнительного кодов, в некоторых цифровых машинах применяются модифицированные обратные и дополнительные коды. В модифицированных кодах знаки чисел изображаются двумя двоичными разрядами: плюс изображается двумя нулями, минус – двумя единицами.
Модифицированный обратный код
Модифицированный обратный код числа Х обозначается [Х]мобр
Правильные двоичные дроби переводятся в модифицированный обратный код по тем же правилам, что и в обратный код. Отличие состоит лишь в том, что в модифицированном обратном коде на изображение знака отводится два разряда.
Пример. Х = -0,01101010: [Х]мобр = 11,10010101.
Дата добавления: 2018-11-24; просмотров: 401; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!