лекция 8 арифметические операции информатика
TRANSCRIPT
11
Арифметические операции над числами в различных системах
счисления
Лекция № 8
22
Сложение чисел
Правило № 9
При сложении двух чисел в системе счисления с основанием q необходимо записать их столбиком одно над другим так, чтобы соответствующие разряды одного слагаемого располагался под соответствующими разрядами другого слагаемого.
Сложение производится поразрядно справа налево, начиная с младших разрядов слагаемых.
33
Сложение чисел (продолжение)
Рассмотрим сложение в разряде с номером i.
Введем обозначения: ai и bi - цифры соответственно первого и
второго слагаемых i-го разряда, pi -признак переноса единицы из i - 1 разряда в i-ый разряд.
Признак переноса pi равен 1, если в i -1 разряде сформирована единица переноса в i-ый разряд и равен 0 в противном случае.
Всегда: p0=0.
Найдем сумму: S = a+ b + pi;
a и b- десятичные числа, которые соответствуют цифрам ai и bi.
Сложение производиться в десятичной системе счисления.
44
Сложение чисел (окончание)
Возможны два случая:
1. S q.
Из S вычтем основание системы счисления q.
Сформируем признак переноса pi+1 в следующий i+1 разряд, равный 1.
Разности, полученной в результате вычитания, поставим в соответствие цифру si системы счисления с основанием q.
2. S< q.
Сформируем признак переноса pi+1 в следующий i+1 разряд, равный 0.
Поставим в соответствие десятичному числу S цифру si системы счисления с основанием q.
Полученная цифра si является цифрой i-го разряда суммы. Аналогично производится сложение в каждом разряде.
55
Пример сложения двоичных чисел
1 1 1 1 1 1 1 1
+
1 0 0 1 0 1 1 0 0 1
+
6 0 110
1 0 1 1 0 0 0 1 1 1 7 1 110
1 0 1 0 0 1 0 0 0 0 0 1 3 1 210
66
Пример сложения восьмеричных чисел
1
+
1 1 3 18
+
7 1 110
1 3 0 78 6 0 110
2 4 4 08 1 3 1 210
77
Пример сложения шестнадцатеричных чисел
1 1
+
2 5 916
+
7 1 110
2 с 716 6 0 110
5 2 016 1 3 1 210
88
Вычитание чисел в различных системах счисления
Правило№10.
Для того чтобы вычесть числа в системе счисления с основанием q, необходимо записать одно под другим столбиком, чтобы разряды вычитаемого располагались под соответствующими разрядами уменьшаемого.
Вычитание производиться поразрядно, начиная с младшего разряда.
99
Вычитание чисел (продолжение)
Рассмотрим вычитание в i-ом разряде.
Введем обозначения:
ai и bi - цифры соответствующие уменьшаемому и вычитаемому i-го разряда,
p - признак единицы заёма в i–ом разряде.
Признак заёма p равен -1, если возникла необходимость в заёме единицы в i + 1 разряде и признак pi равен 0 в противном случае.
Для нулевого разряда всегда выполняется p0=0.
Поставим в соответствии ai и bi десятичные .числа a и b.
Найдем значение выражения R = a b + p.
1010
Вычитание чисел (окончание)Возможныдваслучая:
1. R 0.
Признаку заема присвоим значение равное –1: pi+1 = -1, т.е. возникает заем единицы из следующего разряда.
Найдем сумму R + q.
Полученной сумме поставим в соответствие цифру ri системы счисления с основанием q.
2. R 0.
Значению r необходимо поставить в соответствие цифру
ri.
Признаку заема присвоить значение равное нулю: pi+1 = 0.
Полученная цифра ri является цифрой i-го разряда разности.
Аналогично производится вычитание в каждом разряде.
1111
Пример вычитания двоичных чисел
-1 -1 -1 -1
1 0 1 1 0 0 0 1 1 1 7 1 110
1 0 0 1 0 1 1 0 0 1 6 0 110
1 1 0 1 1 1 0 1 1 010
Необходимовычестьиздвоичногочисла1001011001двоичноечисло1011000111.
Итак,1001011001–1011000111=-1101110.
1212
Пример вычитания восьмеричных чисел
-1
-
1 3 0 78
-
7 1 110
1 1 3 18 6 0 110
1 5 68 1 1 010
1313
Пример вычитания шестнадцатеричных чисел
1 1
_
2 с 716
_
7 1 110
2 5 916 6 0 110
6 е16 1 1 010
1414
Умножение двоичных чисел
Длятого,чтобыумножитьоднодвоичноечислонадругое необходимо записать их одно под другим, чтобыразряды второго сомножителя располагался подсоответствующимиразрядамипервогосомножителя.
Назовем первый сомножитель - множимое, а второйсомножитель-множитель.
1515
Умножение двоичных чисел (продолжение)
Сформируем столбик чисел и расположим его подзаписаннымисомножителями.
Количество чисел столбика равно количеству единицмножителя.
Каждое число столбика соответствует одной единицемножителяиобразуетсяиззаписимножимого.
Множимое записывается в строке столбика так, что егомладший разряд располагается под соответствующейединицеймножителя.
Незаполненныйэлементстрокисчитаетсяравнымнулю.
1616
Умножение чисел (окончание)
Образованныйстолбикчиселскладывается.
Приэтомпервоначальноскладываютсяпервыедвачисла.
К результату сложения прибавляется третье число, кочередномурезультатуприбавляетсячетвертоечисло,ит.д.
Полученная сумма является произведением двухисходныхчисел.
1717
Пример умножения двоичных чисел
14
13
12
11 1
0
9 8 7 6 5 4 3 2 1 0
1 0 0 1 0 1 1 0 0 1
6 0 1
1 0 0 1 0 0 3 6
+
1 0 0 1 0 1 1 0 0 1
+
3 6 0 6
1 0 0 1 0 1 1 0 0 1 1 8 0 3
1 0 1 0 1 0 0 1 0 0 0 0 1 0 0 2 1 6 3 6
1818
Деление двоичных чисел (правило № 12)Для того, чтобы разделить одно двоичное число на другоенеобходимозаписатьчислатакжекакзаписываютсячислаприделениивдесятичнойсистемесчисления(уголком).1.Просматриваемделимоеслеванаправо,начинаясостаршегоразряда, и определим минимальную по длинепоследовательность нулей и единиц, из которой можнообразоватьчислонеменьшее,чемделитель.2.Запишемподобразованнымчисломделительтакимобразом,чтобы младший разряд делителя располагался под младшимразрядомобразованногочисла.3. Выполним вычитание, т.е. из образованного числа вычтемделительинайдемразность.4. В область частного запишем единицу. Если в областичастного имеется последовательность цифр, то единицаприписывается справа к последовательности цифр,размещеннойвобластичастного.
1919
Деление двоичных чисел (окончание)
5. Припишем справа к полученной разности разряд делимого расположенный за образованным числом. Если такой разряд отсутствует, то деление закончено и образованное из разности и возможно приписанных ранее разрядов делимого число является остатком от деления. Если разряд делимого можно приписать к разности, то возможны два случая:
5.1. Образованное число меньше делителя. В этом случае в область частного необходимо справа приписать ноль и повторить шаг 5.
5.2. Образованное число больше или равно делителя. В этом случае следует вновь выполнить шаги 2, 3, 4, 5.
2020
Пример деления двоичных чисел
1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 0 6 0 1 3 6
1 0 0 1 0 0 1 0 0 0 0 5 7 6 1 6
1 1 0 0 1 2 5
21
Вычитаниесиспользованиемдополнительногокода
Правило№13.Вычитаниенеотрицательныхчисел
Дано: неотрицательные десятичные числа.
Найти: двоичной код числа, равный разности исходных чисел.
1. Переведем в двоичную систему счисления исходные десятичные числа.
2. Определим количество двоичных разрядов найденных двоичных чисел и обозначим эти величины через k1 и k2.
3. Найдем минимальное количество разрядов, необходимое для выполнения вычитания и для представления вычитаемого в дополнительном коде:
k=max( k1+1, k2+1 ).
22
Продолжение правила № 13
5. Найдем k - разрядный дополнительный код вычитаемого. Старший разряд – знаковый.
6. Выполним сложение в двоичной системе счисления прямого кода уменьшаемого и дополнительного кода вычитаемого.
Знаковые разряды сложим как обычные разряды чисел. Единицу переноса (при наличии) из знакового разряда отбросим.
Если в знаковом разряде находится ноль, то разность - неотрицательное число и записана в прямом коде.
Если в знаковом разряде единица, то разность - отрицательное число и записана в дополнительном коде.
23
Пример№1вычитаниячиселСложитьчисло1756310счислом-159410вдвоичной
системесчисления(159410=110001110102).
Единицапереноса
11000001100111100
1-еслагаемое(уменьшаемое)
+
756310 = 01000100100110112
2-еслагаемое(вычитаемое)
-159410 = 11111001110001102
Результат(разность)
1596910 = 00111110011000012
k1=15,k2=11,k=max(k1+1,k2+1)=max(15+1,11+1)=16
24
Пример№2вычитаниячиселСложитьчисло159410счислом-1756310вдвоичнойсистеме
счисления.
Единицапереноса
0111110011000000
1-еслагаемое
+
159410 = 00000110001110102
2-еслагаемое -1756310 = 10111011011001012
Результат -1596910 = 11000001100111112
k1=11,k2=15,k=max(k1+1,k2+1)=max(11+1,15+1)=16
25
Выполнениеоперацийприиспользованииформатахранениясплавающейточкой
1. При сложении и вычитании чисел сначала уравниваются порядки операндов. Мантисса числа с меньшим порядком сдвигается вправо на количество разрядов, равное разности порядков операндов. Порядок при завершении сдвига увеличивается на количество разрядов, равное разности порядков операндов.
2. При умножении чисел их порядки складываются, а мантиссы перемножаются.
3. При делении из порядка делимого вычитается порядок делителя, а над мантиссами совершается операция деления.
4. В случае необходимости полученный результат выполнения арифметических действий нормализуется.
Правило№14
26
Пример сложенияВыполнить сложение числа 0.1012-1 и числа 0.11011 22
1
+
0 . 0 0 0 1 0 1 2 2
0 . 1 1 0 1 1 2 2
0 . 1 1 1 0 1 1 2 2
27
Пример вычитания
Вычесть из 0.10101 22 число 0.11101 21
-1 -1 -1 -1
+
0 . 1 0 1 0 1 2 2
0 . 0 1 1 1 0 1 2 2
0 . 0 0 1 1 0 1 2 2
Результат: 0.110120
28
Примерумножения(0.11101 25) (0.1001 23)=
= (0.11101 0.1001) 25+3=
= (0.11101 25 2-5 0.1001 24 2-4) 28=
= (11101 2-5 1001 2-4) 28=
= (11101 1001) 2-1 = 100000101 2-1=
= 10000010.1 20 = 130.510=
=0.10000010128
Проверка решения:
(0.11101 25) (0.1001 23)= 11101 1001 2-1=
=29 9 / 2 = 130.510
29
Примерделения
(0.1111 24) : (0.101 23) =
= (0.1111 : 0.101) 21 =
= ((0.1111 24 2-4) : (0.101 23 2-3)) 21 =
= ((1111 2-4) : (101 2-3)) 21 =
(1111 : 101) 20 = 11 20=
= 0.11 22.
Проверкарешения:
Переведем результат в 10-ую СС:
0.11 22 = 112= 310.
Найдем произведение в 10-ой СС:
(0.1111 24):(0.101 23)=(11112 : 1012) = 1510:510 = 310