1). Задание 1 Найти значения С1,С2, С3, С4, определяемые выражениями: С1 = А + В, С2 = А – В, С3 = В – А, С4 = – А – В, где А = +5493, В = -1911. При выполнении задания операнды А и В необходимо представить в двоично-десятичной системе, сформировать для них прямые коды и, используя дополнительный код по правилам двоично-десятичной арифметики найти значения С1, С2, С3, С4. Результат представить в прямом коде.
Решение: А = + 0101 0100 1001 0011 – А = – 0101 0100 1001 0011 В = – 0001 1001 0001 0001 – В = + 0001 1001 0001 0001
Найдем прямые и дополнительные (+6) двоично-десятичные коды для чисел А, -А, В, -В: [А]ПК = [А]ДК = 0. 0101 0100 1001 0011; [-А]ПК = 1. 0101 0100 1001 0011; [-А]ИК = 1. 1010 1011 0110 1100; инверсный код [-А]ИК+1 = 1. 1010 1011 0110 1100 [-А]ИК + 0001 коррекция для доп. кода 1. 1010 1011 0110 1101 [-А]ДК +6 = [-А]ИК+1 = 1. 1010 1011 0110 1101;
С2 = А – В = А + (-В); С3 = В – А = В + (-А); |С2| = |С3|: 0. 0101 0100 1001 0011 –[|А|]ДК + 0. 0001 1001 0001 0001 – [|В|]ДК 0. 0110 1101* 1010* 0100 – * переполнение тетрад; + 0110 0110 – добавление шестерок в тетрады, где, значения больше девяти; 0.0111 0100 0000 0100 – коррекцию произвели с переносом единицы в старший разряд. [|С2|]ПК = [|С3|]ПК = 0.0111 0100 0000 0100 – [74042].
Присвоение сумме знака: С2 = А – В = А + (-В) – сумма положительных чисел; [С2]ПК = [|С2|]ПК = 0.0111 0100 0000 0100 – [74042]
С3 = В – А = В + (-А) – сумма отрицательных чисел; [С2]ПК = - [|С2|]ПК = 1.0111 0100 0000 0100 – [-74042]
2) Задание 2 Выполнить операцию вычитания над числами А и В, представленными с плавающей точкой. Использовать двоичный обратный код. А: {ап = -2 (порядок А), ам = -0,56 (мантисса А)}. В: {bп = 0 (порядок b), bм = +0,51 (мантисса b)}. Мантиссы операндов А и В необходимо представить в двоичной системе счисления и сформировать для них прямые коды. Разрядность модуля порядка должна быть равно 3, разрядность модуля мантиссы – 6. Результат (порядок и мантисса) должен быть представлен в прямом коде в нормализованной форме.
Решение: А – В = А + (-В). Представим числа А и В в двоичной системе счисления Найдем мантиссу А2 методом преобразования весов разрядов: -2-1 = -0,5 [А2]м = -0,1 -0,56 – (-0,5) = -0,06; -2-2 = -0,25 [А2]м = -0,10 -0,06 – 0 = -0,06; -2-3 = -0,125 [А2]м = -0,100 -0,06 – 0 = -0,06; -2-4 = -0,0625 [А2]м = -0,1000 -0,06 – 0 = -0,06; -2-5 = -0,03125 [А2]м = -0,10001 -0,06 – (-0,03125) = -0,02875; -2-6 = -0,015625 [А2]м = -0,100011 -0,02875 – (-0,015625) ≈ -0,013; -2-7 ≈ -0,0078 [А2]м = -0,100011 1 -0,013 – (-0,0078) = -0,0052; С учетом округления получаем [А2]м = -0,100100
Представим в прямом коде порядки и мантиссы чисел А, В и -В: [Ап]ПК = 1.010, [Ам]ПК = 1.100100; [Вп]ПК = 0.000, [Вм]ПК = 0.100001; [-Вп]ПК = 0.000, [-Вм]ПК = 1.100001.
Представим порядки и мантиссы чисел А, В и –В в обратном коде: [Ап]ОК = 1.101, [Ам]ОК = 1.011011; [Вп]ОК = [Вп]ПК = 0.000, [Вм]ОК = [Вп]ПК = 0.100001; [-Вп]ОК = [-Вп]ПК = 0.000, [-Вм]ОК = 1.011110. Выравняем порядки чисел А и В, для этого из порядка первого числа вычтем порядок второго: 1.101 [Ап]ОК; +0.000 [-Вп]ОК; 1.101 – разность порядков в обратном коде; 1.010 – разность порядков в прямом коде. Так знак разности порядков отрицательный, то в качестве общего порядка берется порядок второго числа Вп. Для выравнивания порядков порядок меньшего числа А увеличиваем на 2, для этого мантиссу меньшего числа А умножаем на 2-2, то есть выполняем ее арифметический сдвиг на два разряда вправо в обратном коде. Для этого сдвигаем вправо только модульную часть, а в освобожденные разряды устанавливаем единицы: [Ам]ОК = 1.011011 → [Ам]ОК = 1.110110 ([Ап]ОК = 0.000). После выравнивания порядков определяем предварительное значение мантиссы С, как [С’м]ОК = [Ам]ОК – [Вм]ОК = [Ам]ОК + [-Вм]ОК: 11.110110 [Ам]мОК +11.011110 [-Вм]мОК 111.010100 + 1 11.010101 [С’м]мОК Одинаковые разряды в поле знака модифицированного кода свидетельствуют об отсутствии переполнения (получена мантисса С’ с нулевой целой частью). В то же время первый разряд в обратном коде равен нулю (в прямом коде он равен единице). Выполнение этих двух условий позволяет сказать, что мантисса С’ получена в нормализованной форме, отсюда следует: [С’м]ОК = 1.010101; [См]ОК = [С’м]ОК = 1.010101; Представим найденное число С = А – В в прямом коде в нормализованном виде: [См]ПК = 0.000, [См]ПК = 1.101010.