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

Рассмотрим пример выполнения некоторых пунктов лабораторной работы на примере двух чисел A и B. Сформируем числа следующим образом:

Владимир A2 = 110101012

Резников B2 = 101101012

Далее идем по пунктам задания.

1. Переведем A2 и B2 в десятичную СС.

A10 = 27 + 26 + 24 + 22 + 20 = 128 + 64 + 16 + 4 + 1 = 21310.

B10 = 27 + 25 + 24 + 22 + 20 = 128 + 32 + 16 + 4 + 1 = 18110.

2. Переведем числа A10, B10 в троичную СС.

В процессе перевода будем использовать последовательное заполнение разрядной сетки, которая в случае троичной СС будет иметь следующий вид:

         
34=81 33=27 32=9 31=3 30=1

Тогда A10 будет представлено в троичной СС следующим образом:

A3 = 2*34 + 1*33 + 2*32 + 2*31 + 0*30 = 162 + 27 + 18 + 6 + 0 = 212203.

B3 = 2*34 + 0*33 + 2*32 + 0*31 + 1*30 = 162 + 0 + 18 + 0 + 1 = 202013.

6. Выполним A2+B2.

      переносы
+ A2
B2
A2+B2

7. Выполним A3+B3.

        переносы
+ A3
B3
A3+B3

12. Выполним A2-B2.

                заёмы
A2
B2
  A2–B2

13. Выполним A3–B3.

          заёмы
A3
B3
  A3–B3

16. Считая числа A2 и B2 знаковыми числами в прямом коде, найдем их десятичные значения AПК и BПК.

Старший разряд числа A2 равен 1, следовательно, число отрицательное. Оставшиеся разряды образуют модуль числа, равный

|A| = 10101012 = 26 + 24 + 22 + 20 = 64 + 16 + 4 + 1 = 8510.

Таким образом, AПК = 1.10101012 = -8510.

Старший разряд числа B2 равен 1, следовательно, число отрицательное. Оставшиеся разряды образуют модуль числа, равный

|B| = 01101012 = 25 + 24 + 22 + 20 = 32 + 16 + 4 + 1 = 5310.

Следовательно, BПК = 1.01101012 = -5310.

17. Считая числа A2 и B2 знаковыми числами в прямом коде, представить их в 16-разрядном формате, получив в результате числа AПК16 и BПК16.

Для того, чтобы увеличить разрядность числа, представленного в ПК, сохранив при этом правильный знак, нужно между знаковым разрядом и модулем числа добавить недостающее количество разрядов, равных нулю.

В нашем случае число AПК имеет 8 разрядов. Следовательно, чтобы увеличить его длину до 16 разрядов, нужно между знаком и модулем добавить восемь нулевых разрядов. Вот что мы получим:

AПК16 = 1.00000000 1010101ПК.

Аналогично поступаем с числом BПК. Поскольку в нашем примере оно также является восьмиразрядным, то после знака добавляем 8 нулевых разрядов:

BПК16 = 1.00000000 0110101ПК.

18. Выполним AПК16 + BПК16, представив результат в двоичной, шестнадцатеричной и десятичной СС.

Первым делом при сложении чисел в ПК проверяем, равны ли знаки слагаемых. Очевидно, что знаки равны, следовательно, складываем модули чисел.

                    переносы
+ |AПК16|
|BПК16|
  |AПК16|+|BПК16|

Подставив к результату знак, равный в нашем случае единице, получим следующее значение:

AПК16 + BПК16 = 1.0000000100010102 = – (27+23+21) = – (128+8+1) = –13710.

AПК16 + BПК16 = 1.0000000100010102 = 1000 0000 1000 1010 = 808A16.

19. Считая числа A2 и B2 знаковыми числами в дополнительном коде, найдем их десятичные значения AДК и BДК.

Старший разряд числа A2=11010101 равен 1, следовательно, число отрицательное и требует перевода в прямой код. Убираем знак, оставшиеся разряды инвертируем и прибавляем единицу, и подставляем знак на место. Получим:

AДК = 1.1010101ДК = 1.0101011ПК = – (32+8+2+1) = -4310.

Аналогично и с числом B:

BДК = 1.0110101ДК = 1.1001011ДК = – (64+8+2+1) = -7510.

20. Представим числа A2 и B2 в 16-разрядном формате, считая их записанными в дополнительном коде.

Для того, чтобы увеличить разрядность двоичного числа в ДК, не изменим при этом его значение, нужно между знаковым и значащими разрядами добавить недостающее количество разрядов, значение которых равно знаку числа.

В нашем случае AДК = 1.1010101ДК есть восьмиразрядное отрицательное число. Поскольку знак равен 1, после знакового разряда вставляем 8 разрядов, равных единице. Получаем:

AДК16 = 1.11111111 1010101ДК.

То же самое проделываем и с числом B:

BДК16 = 1.11111111 0110101ДК.

21. Выполним AДК16 + BДК16, представив результат в двоичной, шестнадцатеричной и десятичной СС.

При сложении чисел в ПК предварительный анализ знаков не делаем, а складываем числа «целиком», сразу получая правильный результат:

      переносы
+ AДК16
BДК16
  AДК16+BДК16

Отметим, что при сложении чисел в ДК перенос из старшего разряда игнорируется и отбрасывается. Таким образом, результат составляет столько же разрядов, сколько и слагаемые (в нашем случае 16). Получаем:

AДК16 + BДК16 = 1.11111111100010102 = 1111 1111 1000 1010 = FF8A16.

Чтобы перевести результат из ДК в десятичную систему нужно сначала перевести его в прямой код. Поскольку результат отрицательный (старший разряд равен 1), то отделяем знак, оставшиеся 15 разрядов инвертируем и прибавляем единицу, после чего подставляем знак. Получаем:

AДК16 + BДК16 = 1.1111111110001010ДК = 1.0000000001110110ПК =

= – (64+32+16+4+2) = -11810.

Если взглянуть на результат, полученный в п.19, то можно убедиться в правильности выполненного сложения. Действительно:

AДК + BДК = -4310 + (-7510) = -11810.

22. Найдем для чисел AПК и BПК противоположные по знаку числа
-AПК и -BПК и запишем их в двоичной системе счисления в 16-разрядном формате.

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

AПК = 1.10101012 = -8510.

-AПК = 0.10101012 = +8510.

Поскольку -AПК – положительное число, то при расширении его до 16 разрядов после знакового разряда вставляем восемь разрядов, равных нулю:

-AПК16 = 0.00000000 10101012.

Аналогично для числа B:

BПК = 1.01101012 = -5310.

-BПК = 0.01101012 = +53.

-BПК16 = 0.00000000 01101012.

23. Найдем для чисел AДК и BДК противоположные по знаку числа
-AДК и –BДК и запишем их в двоичной системе счисления в 16-разрядном формате.

Для того, чтобы у числа, представленного в ДК, изменить знак, следует инвертировать все разряды числа и к полученному значению прибавить единицу. Эти операции делаются над всеми разрядами числа, включая знаковый. Выполним данные действия над числами A2 и B2, считая их числами в ДК.

AДК = 1.10101012 = -4310.

-AДК = 0.01010112.

-AДК16 = 0.00000000 01010112.

BДК = 1.01101012 = -7510.

-BДК = 0.10010112.

-BДК16 = 0.0000000010010112.

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

Итак, имеем:

-AПК16 = 0.00000000 10101012.

Старший байт числа (старшие 8 разрядов) равен:

000000002 = 0.0000000ПК = 010.

Младший байт числа (младшие 8 разрядов) равен:

010101012 = 0.1010101ПК = + (64+16+4+1) = +8510.

Аналогично для числа B:

-BПК16 = 0.00000000 01101012.

Старший байт числа (старшие 8 разрядов) равен:

000000002 = 0.0000000ПК = 010.

Младший байт числа (младшие 8 разрядов) равен:

011101012 = 0.0110101ПК = + (32+16+4+1) = +5310.

Наши рекомендации