Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Кодирование информации и системы счисления. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
81
5. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
В ПОЗИЦИОННЫХ СИСТЕМАХ СЧИСЛЕНИЯ
Рассмотрим основные арифметические операции: сложе-
ние, вычитание, умножение и деление. Правила выполнения этих операций в десятичной системе хорошо известны — это сложение, вычитание, умножение столбиком и деление углом. Данные правила применимы и ко всем другим позиционным системам счисления. Только для каждой системы нужно пользо­ваться особыми таблицами сложения и умножения.
5.1. ОПЕРАЦИЯ СЛОЖЕНИЯ
При выполнении любой операции результат ищется со­гласно соответствующим правилам, которые удобно представ­лять в табличной форме, где для всех возможных комбинаций значений одноразрядных операндов приводятся значения ре­зультата.
Таблицы сложения легко составить, используя правила счета.
5.1.1. Сложение в двоичной системе счисления
Рис. 5.1. Правила сложения в двоичной системе счисления
Примечание. Все возможные значения первого слагаемо­го задаются во второй и третьей строках первой колонки; все возможные значения второго слагаемого — во второй и третьей колонках первой строки. На пересечении отмеченных значения­ми операндов строк и колонок располагается результат их сло­жения.
82
В общем случае при формировании значения в текущем разряде результата приходится дважды применять приведенную таблицу сложения: первый раз при сложении соответствующих разрядов операндов, формируя так называемую поразрядную сумму, и второй раз при сложении разряда сформированной поразрядной суммы и переноса, пришедшего из ближайшего младшего разряда.
При машинной реализации операции сложения сначала формируется поразрядная сумма операндов без учета переноса, далее формируется код переноса и затем с помощью специаль­ных логических цепей учитываются возникшие переносы. При этом перенос, возникший в некотором разряде, может изменить не только ближайший старший разряд, но и целую группу стар­ших разрядов. В худшем случае перенос, возникший в самом младшем разряде, может изменить значение старших разрядов сформированной поразрядной суммы вплоть до самого старшего.
При формировании поразрядной суммы и учете возник­ших переносов используется следующая классификация разря­дов складываемых операндов:
– разряд, генерирующий перенос (оба операнда в этом разряде имеют значение «1»);
– разряд, пропускающий перенос (операнды в этом разря­де имеют разные значения);
– разряд, блокирующий распространение переноса (опе­ранды в этом разряде имеют одинаковые значения).
Пример 1. Сложить числа 1510 и 610 в двоичной системе счисления (11112 + 1102):
1 1 1 1
+
1 1 0
1 0 1 0 1
Ответ: 1510 + 610 = 11112 + 1102 = 101012.
Проверка: 101012 = 1 · 24 + 0 · 23 + 1 · 22 + 0 · 21 + 1 · 20 =
= 16 + 4 + 1 = 2110.
83
Пример 2. Сложить числа 141,510 и 59,75
10
(10001101,12 +
+ 111011,112):
1 0 0 0 1 1 0 1, 1
+
1 1 1 0 1 1, 1 1
1 1 0 0 1 0 0 1, 0 1
Ответ: 10001101,12 + 111011,112 = 11001001,012.
Проверка: 11001001,012 = 27 + 26 + 23 + 20 + 2–2 = 201,2510.
5.1.2. Сложение в восьмеричной системе счисления
Рис. 5.2. Правила сложения в восьмеричной системе счисления
Пример 1. Сложить числа 1510 и 610 в восьмеричной си­стеме счисления (178 + 68):
1 7
+
6
2 5
Ответ: 1510 + 610 = 178 + 68 = 258.
Проверка: 258 = 2 · 81 + 5 · 80 = 16 + 5 = 2110.
84
Пример 2. Сложить числа 141,510 и 59,7510 (215,48 + 73,68):
2 1 5, 4
+
7 3, 6
3 1 1, 2
Ответ: 215,48 + 73,68 = 311,28.
Проверка: 311,28 = 3 · 82 + 1 · 81 + 1 · 80 + 1 · 8
–1
= 201,2510.
5.1.3. Сложение в шестнадцатеричной системе счисления
Рис. 5.3. Правила сложения в шестнадцатеричной системе счисления
Пример 1. Сложить числа 1510 и 610 в шестнадцатеричной
системе счисления (F16 + 616):
F
+
6
1 5
85
Ответ: 1510 + 610 = F16 + 6
16
= 1516.
Проверка: 15
16
= 1 · 161 + 5 · 160 = 16 + 5 = 2110.
Пример 2. Сложить числа 141,510 и 59,7510 (8D,816 + 3B,C16):
8 D, 8
+
3 B, C
C 9, 4
Ответ: 8D,816 + 3B,C
16
= C9,416.
Проверка: C9,416 = 12 · 161 + 9 · 160 + 4 · 16
1
= 201,2510.
5.2. ОПЕРАЦИЯ ВЫЧИТАНИЯ
В ЭВМ в перечне выполняемых операций арифметическо­го устройства никогда не присутствуют одновременно операция сложения и операция вычитания. При этом, как правило, при­сутствует только операция сложения. Что же касается операции вычитания, то она реализуется за счет прибавления к уменьшае­мому значения вычитаемого, взятого с противоположным знаком.
5.2.1. Вычитание в двоичной системе счисления
Рис. 5.4. Правила вычитания в двоичной системе счисления
Примечание. В двоичной системе счисления все возмож­ные значения вычитаемого задаются во второй и третьей стро­ках первой колонки; все возможные значения уменьшаемого — во второй и третьей колонках первой строки. На пересечении отмеченных значениями операндов строк и колонок располага­ется результат вычитания второго операнда из первого. В таб-
86
лице знаком «*» отмечен случай, когда в текущем разряде ре­зультата получена единица при займе из ближайшего старшего разряда.
На рис. 5.5–5.6 приведены примеры вычитания двух дво­ичных чисел.
Рис. 5.5. Примеры вычитания чисел в двоичной системе счисления
Рис. 5.6. Операция вычитания в двоичной системе счисления
5.2.2. Вычитание в восьмеричной системе счисления
Пример. Вычесть число 59,7510 из числа 201,2510 (3118 – 73,68):
3 1 1, 2
7 3, 6
2 1 5, 4
Ответ: 311,28 – 73,68 = 215,48.
Проверка: 215,48 = 2 · 82 + 1 · 81 + 5 · 80 + 4 · 8
–1
= 141,510.
87
5.2.3. Вычитание в шестнадцатеричной системе счисления
Пример. Вычесть число 59,7510 из числа 201,2510 (C9,416
3B,C16):
C 9, 4
3 B, C
8 D, 8
Ответ: C9,4
16
– 3B,C
16
= 8D,816.
Проверка: 8D,8
16
= 8 · 161 + D · 160 + 8 · 16
–1
= 141,510.
5.3. ОПЕРАЦИЯ УМНОЖЕНИЯ
При умножении многоразрядных операндов (особенно в де-
сятичной системе счисления), как правило, используется метод, при котором формирование произведения выполняется за счет суммирования частичных произведений, которые оформляются посредством умножения множимого на отдельные разряды мно­жителя с учетом веса соответствующего разряда множителя.
5.3.1. Умножение в двоичной системе счисления
Умножение в двоичной системе счисления задается в таб-
личной форме (рис. 5.7).
Рис. 5.7. Правила умножения в двоичной системе счисления
Примечание. Все возможные значения множимого зада-
ются во второй и третьей строках первой колонки; все возмож­ные значения множителя — во второй и третьей колонках пер-
88
вой строки. На пересечении отмеченных значениями операндов строк и колонок располагается результат умножения первого операнда на второй.
«Таблица умножения одноразрядных операндов в двоич-
ной системе существенно упрощает задачу формирования ча­стичного произведения:
частичное произведение для разряда множителя равня-
ется нулю, если этот разряд равен нулю;
частичное произведение для разряда множителя равня-
ется множимому, взятому с соответствующим весом, если раз­ряд множителя равен единице.
При последовательном способе формирования частичных
произведений последние могут рассчитываться поочередно для отдельных разрядов множителя, начиная с младшего или стар­шего разряда. При десятичном основании, как правило, форми­рование частичных произведений осуществляется, начиная с младшего разряда множителя.
Пример 1. Найти произведение двоичных чисел 1011 и 1101, начиная формирование частичных произведений со старшего разряда множителя.
Решение.
При формировании частичных произведений, начиная со старшего разряда множителя, процесс формирования произве­дения заданных операндов можно представить следующим об­разом» (рис. 5.8)11:
Рис. 5.8. Пример умножения двоичных чисел
(со старшего разряда множителя)
11
Операция умножения // Файловый архив для студентов: сайт. URL: https://stud-
file.net/preview/2527416/page:5/ (дата обращения: 29.03.2022).
89
Пример 2. Найти произведение двоичных чисел 1011 и 1101, начиная формирование частичных произведений с млад­шего разряда множителя и применяя учет сформированных ча­стичных произведений по мере их формирования.
Решение (рис. 5.9).
Рис. 5.9. Пример умножения двоичных чисел
(с младшего разряда множителя)
Примечание. В данном примере для того, чтобы учесть то, что очередной разряд множителя имеет вес в два раза боль­ший, чем предыдущий разряд, его частичное произведение учи­тывается со сдвигом множимого на один разряд влево при сум­мировании с промежуточным результатом. В таком случае го­ворят, что умножение выполняется со сдвигом множимого.
Однако для учета того, что очередное частичное произве­дение имеет вес, в два раза больший веса предыдущего частич­ного произведения, можно при суммировании сдвигать вправо промежуточный результат. В таком случае говорят: умножение выполняется со сдвигом промежуточного результата.
При использовании данного подхода умножение чисел 1101 и 1011 представляется в виде следующих действий (рис. 5.10):
90
Рис. 5.10. Результат умножения со сдвигом промежуточного результата
В первой колонке приведены номера отрабатываемых раз­рядов множителя, начиная с младшего. Эти номера отмечают строки, в которых учитывается частичное произведение, соот­ветствующее этому разряду множителя. В этой же первой ко­лонке расположены единицы переполнения, возникающие при суммировании промежуточного результата и очередного ча­стичного произведения, сформированного для соответствующе­го отрабатываемого разряда множителя (в данном случае еди­ница переполнения имеется при отработке четвертого, самого старшего, разряда множителя).
Вторая колонка отражает длину основной разрядной сетки
(n = 4).
В третьей колонке представлены разряды промежуточных и конечного произведений, «вытолкнутых» за пределы основной разрядной сетки в процессе выполнения очередного сдвига про­межуточного произведения.
Из приведенного примера видно, что выталкиваемые за пределы разряды промежуточных произведений в дальнейшем не изменяются и их значение не влияет на значение суммы, формируемой в пределах основной разрядной сетки. Поэтому