Пример выполнения лабораторной работы. Рассмотрим пример выполнения некоторых пунктов лабораторной работы на примере двух
Рассмотрим пример выполнения некоторых пунктов лабораторной работы на примере двух чисел 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.