лекция 8 арифметические операции информатика

29
1 Арифметические операции над числами в различных системах счисления Лекция № 8

Upload: gulnaz-shakirova

Post on 30-Jun-2015

1.096 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: лекция 8 арифметические операции информатика

11

Арифметические операции над числами в различных системах

счисления

Лекция № 8

Page 2: лекция 8 арифметические операции информатика

22

Сложение чисел

Правило № 9

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

Сложение производится поразрядно справа налево, начиная с младших разрядов слагаемых.

Page 3: лекция 8 арифметические операции информатика

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.

Сложение производиться в десятичной системе счисления.

Page 4: лекция 8 арифметические операции информатика

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-го разряда суммы. Аналогично производится сложение в каждом разряде.

Page 5: лекция 8 арифметические операции информатика

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

Page 6: лекция 8 арифметические операции информатика

66

Пример сложения восьмеричных чисел

      1              

+

1 1 3 18  

+

7 1 110

1 3 0 78   6 0 110

  2 4 4 0­8     1 3 1 210

Page 7: лекция 8 арифметические операции информатика

77

Пример сложения шестнадцатеричных чисел

  1 1              

+

2 5 916  

+

7 1 110

2 с 716   6 0 110

  5 2 016     1 3 1 210

Page 8: лекция 8 арифметические операции информатика

88

Вычитание чисел в различных системах счисления

Правило­№­10.­­­

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

Вычитание производиться поразрядно, начиная с младшего разряда.

Page 9: лекция 8 арифметические операции информатика

99

Вычитание чисел (продолжение)

Рассмотрим вычитание в i-ом разряде.

Введем обозначения:

ai и bi - цифры соответствующие уменьшаемому и вычитаемому i-го разряда,

p - признак единицы заёма в i–ом разряде.

Признак заёма p равен -1, если возникла необходимость в заёме единицы в i + 1 разряде и признак pi равен 0 в противном случае.

Для нулевого разряда всегда выполняется p0=0.

Поставим в соответствии ai и bi десятичные .числа a и b.

Найдем значение выражения R = a b + p.

Page 10: лекция 8 арифметические операции информатика

1010

Вычитание чисел (окончание)Возможны­два­случая:

1.     R 0.

Признаку заема присвоим значение равное –1: pi+1 = -1, т.е. возникает заем единицы из следующего разряда.

Найдем сумму R + q.

Полученной сумме поставим в соответствие цифру ri системы счисления с основанием q.

2.     R 0.

Значению r необходимо поставить в соответствие цифру

ri.

Признаку заема присвоить значение равное нулю: pi+1 = 0.

Полученная цифра ri является цифрой i-го разряда разности.

Аналогично производится вычитание в каждом разряде.

Page 11: лекция 8 арифметические операции информатика

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.

Page 12: лекция 8 арифметические операции информатика

1212

Пример вычитания восьмеричных чисел

    -1                

-

1 3 0 78  

-

7 1 110

1 1 3 18   6 0 110

    1 5 68       1 1 010

Page 13: лекция 8 арифметические операции информатика

1313

Пример вычитания шестнадцатеричных чисел

  1 1              

_

2 с 716  

_

7 1 110

2 5 916   6 0 110

    6 е16       1 1 010

Page 14: лекция 8 арифметические операции информатика

1414

Умножение двоичных чисел

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

Назовем­ первый­ сомножитель­ -­ множимое,­ а­ второй­сомножитель­-­множитель.­

Page 15: лекция 8 арифметические операции информатика

1515

Умножение двоичных чисел (продолжение)

Сформируем­ столбик­ чисел­ и­ расположим­ его­ под­записанными­сомножителями.­

Количество­ чисел­ столбика­ равно­ количеству­ единиц­множителя.

Каждое­ число­ столбика­ соответствует­ одной­ единице­множителя­и­образуется­из­записи­множимого.­

Множимое­ записывается­ в­ строке­ столбика­ так,­ что­ его­младший­ разряд­ располагается­ под­ соответствующей­единицей­множителя.­

Незаполненный­элемент­строки­считается­равным­нулю.­

Page 16: лекция 8 арифметические операции информатика

1616

Умножение чисел (окончание)

Образованный­столбик­чисел­складывается.­

При­этом­первоначально­складываются­первые­два­числа.­

К­ результату­ сложения­ прибавляется­ третье­ число,­ к­очередному­результату­прибавляется­четвертое­число,­­­­­­­­и­т.­д.­

Полученная­ сумма­ является­ произведением­ двух­исходных­чисел.­

Page 17: лекция 8 арифметические операции информатика

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

Page 18: лекция 8 арифметические операции информатика

1818

Деление двоичных чисел (правило № 12)Для­ того,­ чтобы­ разделить­ одно­ двоичное­ число­ на­ другое­необходимо­записать­числа­также­как­записываются­числа­при­делении­в­десятичной­системе­счисления­(уголком).­1.­Просматриваем­делимое­слева­направо,­начиная­­со­старшего­разряда,­ и­ определим­ минимальную­ по­ длине­последовательность­ нулей­ и­ единиц,­ из­ которой­ можно­образовать­число­не­меньшее,­чем­делитель.2.­Запишем­под­образованным­числом­делитель­таким­образом,­чтобы­ младший­ разряд­ делителя­ располагался­ под­ младшим­разрядом­образованного­числа.3.­ Выполним­ вычитание,­ т.е.­ из­ образованного­ числа­ вычтем­делитель­и­найдем­разность.4.­ В­ область­ частного­ запишем­ единицу.­ Если­ в­ области­частного­ имеется­ последовательность­ цифр,­ то­ единица­приписывается­ справа­ к­ последовательности­ цифр,­размещенной­в­области­частного.

Page 19: лекция 8 арифметические операции информатика

1919

Деление двоичных чисел (окончание)

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

5.1. Образованное число меньше делителя. В этом случае в область частного необходимо справа приписать ноль и повторить шаг 5.

5.2. Образованное число больше или равно делителя. В этом случае следует вновь выполнить шаги 2, 3, 4, 5.

Page 20: лекция 8 арифметические операции информатика

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    

Page 21: лекция 8 арифметические операции информатика

21

Вычитание­с­использованием­дополнительного­кода

Правило­­№­13.­Вычитание­неотрицательных­чисел

Дано: неотрицательные десятичные числа.

Найти: двоичной код числа, равный разности исходных чисел.

1. Переведем в двоичную систему счисления исходные десятичные числа.

2. Определим количество двоичных разрядов найденных двоичных чисел и обозначим эти величины через k1 и k2.

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

k=max( k1+1, k2+1 ).

Page 22: лекция 8 арифметические операции информатика

22

Продолжение правила № 13

5. Найдем k - разрядный дополнительный код вычитаемого. Старший разряд – знаковый.

6. Выполним сложение в двоичной системе счисления прямого кода уменьшаемого и дополнительного кода вычитаемого.

Знаковые разряды сложим как обычные разряды чисел. Единицу переноса (при наличии) из знакового разряда отбросим.

Если в знаковом разряде находится ноль, то разность - неотрицательное число и записана в прямом коде.

Если в знаковом разряде единица, то разность - отрицательное число и записана в дополнительном коде.

Page 23: лекция 8 арифметические операции информатика

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­

Page 24: лекция 8 арифметические операции информатика

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­

Page 25: лекция 8 арифметические операции информатика

25

Выполнение­операций­при­использовании­формата­хранения­с­плавающей­точкой

1. При сложении и вычитании чисел сначала уравниваются порядки операндов. Мантисса числа с меньшим порядком сдвигается вправо на количество разрядов, равное разности порядков операндов. Порядок при завершении сдвига увеличивается на количество разрядов, равное разности порядков операндов.

2. При умножении чисел их порядки складываются, а мантиссы перемножаются.

3. При делении из порядка делимого вычитается порядок делителя, а над мантиссами совершается операция деления.

4. В случае необходимости полученный результат выполнения арифметических действий нормализуется.

Правило­№­14

Page 26: лекция 8 арифметические операции информатика

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

Page 27: лекция 8 арифметические операции информатика

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

Page 28: лекция 8 арифметические операции информатика

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

Page 29: лекция 8 арифметические операции информатика

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