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

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

Jul 06, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: лекция 8 арифметические операции информатика

11

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

счисления

Лекция № 3

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.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

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.1101×20

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.100000101×28

Проверка решения:

(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