1 Арифметические операции над числами в различных системах счисления Лекция № 3
11
Арифметические операции над числами в различных системах
счисления
Лекция № 3
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.101×2-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.1101×20
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.100000101×28
Проверка решения:
(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