Скачать презентацию ИНФОРМАТИКА Лекция 3 Арифметические операции над числами Скачать презентацию ИНФОРМАТИКА Лекция 3 Арифметические операции над числами

121014_ИНФК_ 2_Арифметические операции_Информатика.ppt

  • Количество слайдов: 86

ИНФОРМАТИКА. Лекция № 3 Арифметические операции над числами в различных системах счисления 1 ИНФОРМАТИКА. Лекция № 3 Арифметические операции над числами в различных системах счисления 1

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

Сложение чисел (продолжение) Рассмотрим сложение в разряде с номером i. Введем обозначения: ai и Сложение чисел (продолжение) Рассмотрим сложение в разряде с номером i. Введем обозначения: ai и bi - цифры соответственно первого и второго слагаемых i-го разряда, pi -признак переноса единицы из i - 1 разряда в i-ый разряд. Признак переноса pi равен 1, если в i -1 разряде сформирована единица переноса в i-ый разряд и равен 0 в противном случае. Всегда: p 0=0. Найдем сумму: S = a+ b + pi; a и b- десятичные числа, которые соответствуют цифрам ai и bi. Сложение производиться в десятичной системе счисления. 3

Сложение чисел (окончание) Возможны два случая: 1. S q. Из S вычтем основание системы Сложение чисел (окончание) Возможны два случая: 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-го разряда суммы. Аналогично производится сложение в каждом разряде. 4

Пример сложения двоичных чисел 1 1 1 1 0 0 1 1 0 0 Пример сложения двоичных чисел 1 1 1 1 0 0 1 1 0 0 1 + 6 0 110 7 1 110 3 1 210 + 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 5

Пример сложения восьмеричных чисел 1 1 1 3 18 1 110 6 0 110 Пример сложения восьмеричных чисел 1 1 1 3 18 1 110 6 0 110 3 1 210 + 1 7 + 3 0 78 2 4 4 0 8 1 6

Пример сложения шестнадцатеричных чисел 1 1 2 5 916 1 110 6 0 110 Пример сложения шестнадцатеричных чисел 1 1 2 5 916 1 110 6 0 110 3 1 210 + 2 7 + с 716 5 2 016 1 7

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

Вычитание чисел (продолжение) Рассмотрим вычитание в i-ом разряде. Введем обозначения: ai и bi - Вычитание чисел (продолжение) Рассмотрим вычитание в i-ом разряде. Введем обозначения: ai и bi - цифры соответствующие уменьшаемому и вычитаемому i-го разряда, p - признак единицы заёма в i–ом разряде. Признак заёма p равен -1, если возникла необходимость в заёме единицы в i + 1 разряде и признак pi равен 0 в противном случае. Для нулевого разряда всегда выполняется p 0=0. Поставим в соответствии ai и bi десятичные. числа a и b. Найдем значение выражения R = a b + p. 9

Вычитание чисел (окончание) Возможны два случая: 1. R 0. Признаку заема присвоим значение равное Вычитание чисел (окончание) Возможны два случая: 1. R 0. Признаку заема присвоим значение равное – 1: pi+1 = -1, т. е. возникает заем единицы из следующего разряда. Найдем сумму R + q. Полученной сумме поставим в соответствие цифру ri системы счисления с основанием q. 2. R 0. Значению r необходимо поставить в соответствие цифру ri. Признаку заема присвоить значение равное нулю: pi+1 = 0. Полученная цифра ri является цифрой i-го разряда разности. Аналогично производится вычитание в каждом разряде. 10

Пример вычитания двоичных чисел Необходимо вычесть из двоичного числа 1001011001 двоичное число 1011000111. 1 Пример вычитания двоичных чисел Необходимо вычесть из двоичного числа 1001011001 двоичное число 1011000111. 1 1 1 0 1 1 0 0 0 1 1 1 7 1 110 1 0 1 1 0 0 1 6 0 110 1 1 0 1 1 1 010 Итак, 1001011001 – 1011000111 = 1101110. 11

Пример вычитания восьмеричных чисел 1 1 3 0 78 1 110 6 0 110 Пример вычитания восьмеричных чисел 1 1 3 0 78 1 110 6 0 110 1 1 010 1 7 1 3 18 1 5 68 12

Пример вычитания шестнадцатеричных чисел 1 1 2 с 716 1 110 6 0 110 Пример вычитания шестнадцатеричных чисел 1 1 2 с 716 1 110 6 0 110 1 1 010 _ 2 7 _ 5 916 6 е 16 13

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

Умножение двоичных чисел (продолжение) Сформируем столбик чисел и расположим его под записанными сомножителями. Количество Умножение двоичных чисел (продолжение) Сформируем столбик чисел и расположим его под записанными сомножителями. Количество чисел столбика равно количеству единиц множителя. Каждое число столбика соответствует одной единице множителя и образуется из записи множимого. Множимое записывается в строке столбика так, что его младший разряд располагается под соответствующей единицей множителя. Незаполненный элемент строки считается равным нулю. 15

Умножение чисел (окончание) Образованный столбик чисел складывается. При этом первоначально складываются первые два числа. Умножение чисел (окончание) Образованный столбик чисел складывается. При этом первоначально складываются первые два числа. К результату сложения прибавляется третье число, к очередному результату прибавляется четвертое число, и т. д. Полученная сумма является произведением двух исходных чисел. 16

Пример умножения двоичных чисел 1 4 1 3 1 2 1 1 1 0 Пример умножения двоичных чисел 1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 6 0 1 3 6 0 3 6 0 6 1 8 0 3 0 0 2 1 6 3 6 + + 17

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

Деление двоичных чисел (окончание) 5. Припишем справа к полученной разности разряд делимого расположенный за Деление двоичных чисел (окончание) 5. Припишем справа к полученной разности разряд делимого расположенный за образованным числом. Если такой разряд отсутствует, то деление закончено и образованное из разности и возможно приписанных ранее разрядов делимого число является остатком от деления. Если разряд делимого можно приписать к разности, то возможны два случая: 5. 1. Образованное число меньше делителя. В этом случае в область частного необходимо справа приписать ноль и повторить шаг 5. 2. Образованное число больше или равно делителя. В этом случае следует вновь выполнить шаги 2, 3, 4, 5. 19

Пример деления двоичных чисел 1 0 0 1 0 0 6 0 1 3 Пример деления двоичных чисел 1 0 0 1 0 0 6 0 1 3 6 1 0 0 5 7 6 1 6 1 1 0 0 1 2 5 20

Вычитание с использованием дополнительного кода Правило № 13. Вычитание неотрицательных чисел Дано: неотрицательные десятичные Вычитание с использованием дополнительного кода Правило № 13. Вычитание неотрицательных чисел Дано: неотрицательные десятичные числа. Найти: двоичной код числа, равный разности исходных чисел. 1. Переведем в двоичную систему счисления исходные десятичные числа. 2. Определим количество двоичных разрядов найденных двоичных чисел и обозначим эти величины через k 1 и k 2. 3. Найдем минимальное количество разрядов, необходимое для выполнения вычитания и для представления вычитаемого в дополнительном коде: k=max( k 1+1, k 2+1 ). 21

Продолжение правила № 13 5. Найдем k разрядный дополнительный код вычитаемого. Старший разряд – Продолжение правила № 13 5. Найдем k разрядный дополнительный код вычитаемого. Старший разряд – знаковый. 6. Выполним сложение в двоичной системе счисления прямого кода уменьшаемого и дополнительного кода вычитаемого. Знаковые разряды сложим как обычные разряды чисел. Единицу переноса (при наличии) из знакового разряда отбросим. Если в знаковом разряде находится ноль, то разность - неотрицательное число и записана в прямом коде. Если в знаковом разряде единица, то разность - отрицательное число и записана в дополнительном коде. 22

Пример № 1 вычитания чисел Сложить число 1756310 с числом 159410 в двоичной системе Пример № 1 вычитания чисел Сложить число 1756310 с числом 159410 в двоичной системе счисления (159410=110001110102). k 1 =15, k 2 = 11, k=max(k 1+1, k 2+1) = max(15 + 1, 11 +1) =16 1100000111100 Единица переноса 1 е слагаемое (уменьшаемое) 756310 0100100110112 159410 = 111110001102 1596910 = 0011111000012 + 2 е слагаемое (вычитаемое) Результат (разность) = 23

Пример № 2 вычитания чисел Сложить число 159410 с числом 1756310 в двоичной системе Пример № 2 вычитания чисел Сложить число 159410 с числом 1756310 в двоичной системе счисления. k 1 =11, k 2 = 15, k=max(k 1+1, k 2+1) = max(11 + 1, 15 +1) =16 Единица переноса 1 е слагаемое 011111000000 159410 = 000001110102 -1756310 = 1011011001012 1596910 = 1100000111112 + 2 е слагаемое Результат 24

Выполнение операций при использовании формата хранения с плавающей точкой Правило № 14 1. При Выполнение операций при использовании формата хранения с плавающей точкой Правило № 14 1. При сложении и вычитании чисел сначала уравниваются порядки операндов. Мантисса числа с меньшим порядком сдвигается вправо на количество разрядов, равное разности порядков операндов. Порядок при завершении сдвига увеличивается на количество разрядов, равное разности порядков операндов. 2. При умножении чисел их порядки складываются, а мантиссы перемножаются. 3. При делении из порядка делимого вычитается порядок делителя, а над мантиссами совершается операция деления. 4. В случае необходимости полученный результат выполнения 25 арифметических действий нормализуется.

Пример сложения Выполнить сложение числа 0. 101 2 -1 и числа 0. 11011 22 Пример сложения Выполнить сложение числа 0. 101 2 -1 и числа 0. 11011 22 0 0 1 0 1 2 2 2 + 0 0 . . 1 1 0 1 1 1 26

Пример вычитания Вычесть из 0. 10101 22 число 0. 11101 21 0 . -1 Пример вычитания Вычесть из 0. 10101 22 число 0. 11101 21 0 . -1 1 -1 0 -1 1 2 2 2 + 0 0 . . 0 0 1 1 1 1 0 0 1 1 Результат: 0. 1101 20 27

Пример умножения (0. 11101 25) (0. 1001 23)= = (0. 11101 0. 1001) 25+3= Пример умножения (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 28

Пример деления (0. 1111 24) : (0. 101 23) = = (0. 1111 : Пример деления (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 29

Представление целых чисел в компьютере 30 Представление целых чисел в компьютере 30

Представление целых чисел в компьютере. Целые числа без знака Целые числа могут представляться в Представление целых чисел в компьютере. Целые числа без знака Целые числа могут представляться в компьютере со знаком или без знака. Обычно занимают в памяти компьютера один или два байта. В однобайтовом формате принимают значения от 00002 до 11112. В двубайтовом формате - от 000000002 до 111111112. 31

Диапазоны значений целых чисел без знака Формат числа в байтах Диапазон Запись с порядком Диапазоны значений целых чисел без знака Формат числа в байтах Диапазон Запись с порядком Обычная запись 1 0. . . 28 1 0. . . 255 2 0. . . 216 1 0. . . 65535 32

Примеры: а) число 7210 = 10010002 в однобайтовом формате: б) это же число в Примеры: а) число 7210 = 10010002 в однобайтовом формате: б) это же число в двубайтовом формате: в) число 65535 в двубайтовом формате: 33

Целые числа со знаком Обычно занимают в памяти компьютера один, два или четыре байта, Целые числа со знаком Обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа. Формат числа в байтах Запись с порядком 1 27. . . 27 1 128. . . 127 2 215. . . 215 1 32768 . . . 32767 231. . . 231 1 2147483 648. . . 2147483 647 4 Диапазон Обычн ая запись 34

Рассмотрим особенности записи целых чисел со знаком на примере однобайтового формата, при котором для Рассмотрим особенности записи целых чисел со знаком на примере однобайтового формата, при котором для знака отводится один разряд, а для цифр абсолютной величины - семь разрядов. В компьютерной технике применяются три формы записи (кодирования) целых чисел со знаком: прямой код, обратный код, дополнительный код. Последние две формы применяются особенно широко, так как позволяют упростить конструкцию арифметикологического устройства компьютера путем замены разнообразных арифметических операций операцией cложения. 35

Представление (хранение) целых положительных чисел в ЭВМ Положительные числа в прямом, обратном и дополнительном Представление (хранение) целых положительных чисел в ЭВМ Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково - двоичными кодами с цифрой 0 в знаковом разряде. Например: 36

Представление (хранение) целых отрицательных чисел в ЭВМ. Прямой код. Отрицательные числа в прямом, обратном Представление (хранение) целых отрицательных чисел в ЭВМ. Прямой код. Отрицательные числа в прямом, обратном и дополнительном кодах имеют разное изображение. 1. Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины. Например: 37

Представление (хранение) целых отрицательных чисел в ЭВМ. Обратный код. Получается инвертированием всех цифр двоичного Представление (хранение) целых отрицательных чисел в ЭВМ. Обратный код. Получается инвертированием всех цифр двоичного кода абсолютной величины числа, включая разряд знака: нули заменяются единицами, а единицы — нулями. Например: 38

Представление (хранение) целых отрицательных чисел в ЭВМ. Дополнительный код. Получается образованием обратного кода с Представление (хранение) целых отрицательных чисел в ЭВМ. Дополнительный код. Получается образованием обратного кода с последующим прибавлением единицы к его младшему разряду. Например: Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа. 39

Как компьютер выполняет арифметические действия над целыми числами? Сложение и вычитание В большинстве компьютеров Как компьютер выполняет арифметические действия над целыми числами? Сложение и вычитание В большинстве компьютеров операция вычитания не используется. Вместо нее производится сложение обратных или дополнительных кодов уменьшаемого и вычитаемого. Это позволяет существенно упростить конструкцию АЛУ. Сложение обратных кодов. Здесь при сложении чисел А и В имеют место четыре основных и два особых случая. 40

Сложение обратных кодов. А и В положительные. 1. А и В положительные. При суммировании Сложение обратных кодов. А и В положительные. 1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например: 41

Сложение обратных кодов. А положительное, B отрицательное и по абсолютной величине больше, чем А. Сложение обратных кодов. А положительное, B отрицательное и по абсолютной величине больше, чем А. 2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например: Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = -710. 42

Сложение обратных кодов. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Сложение обратных кодов. А положительное, B отрицательное и по абсолютной величине меньше, чем А. 3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например: Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы. 43

Сложение обратных кодов. А и В отрицательные 4. А и В отрицательные. Например: Полученный Сложение обратных кодов. А и В отрицательные 4. А и В отрицательные. Например: Полученный первоначально неправильный результат (обратный код числа -1110 вместо обратного кода числа -1010) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы. При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010 = -1010. 44

Сложение обратных кодов При сложении может возникнуть ситуация, когда старшие разряды результата операции не Сложение обратных кодов При сложении может возникнуть ситуация, когда старшие разряды результата операции не помещаются в отведенной для него области памяти. Такая ситуация называется переполнением разрядной сетки формата числа. Для обнаружения переполнения и оповещения о возникшей ошибке в компьютере используются специальные средства. Ниже приведены два возможных случая переполнения. 45

Сложение обратных кодов. А и В положительные, сумма А+В больше, либо равна 2 n Сложение обратных кодов. А и В положительные, сумма А+В больше, либо равна 2 n 1 5. А и В положительные, сумма А+В больше, либо равна 2 n 1, где n — количество разрядов формата чисел (для однобайтового формата n=8, 2 n-1 = 27 = 128). Например: Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки. 46

Сложение обратных кодов. А и В отрицательные, сумма абсолютных величин А и В больше, Сложение обратных кодов. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2 n 1. Например: Здесь знак суммы тоже не совпадает со знаками слагаемых, что свидетельствует о переполнении разрядной сетки. 47

Сложение дополнительных кодов. А и В положительные. 1. А и В положительные. Здесь нет Сложение дополнительных кодов. А и В положительные. 1. А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода. 48

Сложение дополнительных кодов. А положительное, B отрицательное и по абсолютной величине больше, чем А. Сложение дополнительных кодов. А положительное, B отрицательное и по абсолютной величине больше, чем А. 2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например: Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1 0000111 = -710. 49

Сложение дополнительных кодов. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Сложение дополнительных кодов. А положительное, B отрицательное и по абсолютной величине меньше, чем А. 3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например: Получен правильный результат. Единицу переноса из знакового разряда компьютер отбрасывает. 50

Сложение дополнительных кодов. А и В отрицательные. 4. А и В отрицательные. Например: Получен Сложение дополнительных кодов. А и В отрицательные. 4. А и В отрицательные. Например: Получен правильный результат в дополнительном коде. Единицу переноса из знакового разряда компьютер отбрасывает. Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов. 51

Сложение дополнительных кодов. А и В положительные, сумма А+В больше, либо равна 2 n Сложение дополнительных кодов. А и В положительные, сумма А+В больше, либо равна 2 n 1 5. А и В положительные, сумма А+В больше, либо равна 2 n 1, где n — количество разрядов формата чисел (для однобайтового формата n=8, 2 n-1 = 27 = 128). Например: Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки. 52

Сравнение рассмотренных форм кодирования целых чисел со знаком 1. на преобразование отрицательного числа в Сравнение рассмотренных форм кодирования целых чисел со знаком 1. на преобразование отрицательного числа в обратный код компьютер затрачивает меньше времени, чем на преобразование в дополнительный код, так как последнее состоит из двух шагов — образования обратного кода и прибавления единицы к его младшему разряду; 2. время выполнения сложения для дополнительных кодов чисел меньше, чем для их обратных кодов, потому что в таком сложении нет переноса единицы из знакового разряда в младший разряд результата. 53

Умножение и деление Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для Умножение и деление Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число ноль. В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции — окончательный результат. Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения. 54

Пример операции умножения Пример. умножим 1100112 на 1011012. Деление для компьютера является трудной операцией. Пример операции умножения Пример. умножим 1100112 на 1011012. Деление для компьютера является трудной операцией. Обычно оно реализуется путем многократного прибавления к делимому дополнительного кода делителя. 55

Операция деления Деление для компьютера является трудной операцией. Обычно оно реализуется путем многократного прибавления Операция деления Деление для компьютера является трудной операцией. Обычно оно реализуется путем многократного прибавления к делимому дополнительного кода делителя. 56

Представляются в компьютере вещественных чисел Система вещественных чисел в математических вычислениях предполагается непрерывной и Представляются в компьютере вещественных чисел Система вещественных чисел в математических вычислениях предполагается непрерывной и бесконечной, т. е. не имеющей ограничений на диапазон и точность представления чисел. Однако в компьютерах числа хранятся в регистрах и ячейках памяти с ограниченным количеством разрядов. В следствие этого система вещественных чисел, представимых в машине, является дискретной (прерывной) и конечной. 57

Представляются в компьютере вещественных чисел. Продолжение. При написании вещественных чисел в программах вместо привычной Представляются в компьютере вещественных чисел. Продолжение. При написании вещественных чисел в программах вместо привычной запятой принято ставить точку. Для отображения вещественных чисел, которые могут быть как очень маленькими, так и очень большими, используется форма записи чисел с порядком основания системы счисления. Например, десятичное число 1. 25 в этой форме можно представить так: 1. 25. 100 = 0. 125. 101 = 0. 0125. 102 =. . . или так: 12. 5. 10 1 = 125. 0. 10 2 = 1250. 0. 10 3 =. . 58

Представляются в компьютере вещественных чисел. Продолжение. Любое число N в системе счисления с основанием Представляются в компьютере вещественных чисел. Продолжение. Любое число N в системе счисления с основанием q можно записать в виде N = M. qp, где M — множитель, содержащий все цифры числа (мантисса), а p — целое число, называемое порядком. Такой способ записи чисел называется представлением числа с плавающей точкой. Если "плавающая" точка расположена в мантиссе перед первой значащей цифрой, то при фиксированном количестве разрядов, отведённых под мантиссу, обеспечивается запись максимального количества значащих цифр числа, то есть максимальная точность представления числа в машине, т. е. мантисса должна быть правильной дробью, у которой первая цифра после точки (запятой в обычной записи) отлична от нуля: 0. 12 <= |M| < 1. Если это требование выполнено, то число называется нормализованным. 59

Представляются в компьютере вещественных чисел. Продолжение. Мантиссу и порядок q-ичного числа принято записывать в Представляются в компьютере вещественных чисел. Продолжение. Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание — в десятичной системе. Примеры нормализованного представления: Десятичная система Двоичная система 753. 15 = 0. 75315. 103; — 101. 01 = — 0. 10101. 211 (порядок 112 = 310) — 0. 000034 = — 0. 34. 10 -4; 0. 000011 = 0. 11. 2 -100 (порядок — 1002 = — 410). 60

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

Представляются в компьютере вещественных чисел. Продолжение. Здесь порядок n-разрядного нормализованного числа задается в так Представляются в компьютере вещественных чисел. Продолжение. Здесь порядок n-разрядного нормализованного числа задается в так называемой смещенной форме: если для задания порядка выделено k разрядов, то к истинному значению порядка, представленного в дополнительном коде, прибавляют смещение, равное (2 k 1 — 1). Например, порядок, принимающий значения в диапазоне от — 128 до +127, представляется смещенным порядком, значения которого меняются от 0 до 255. Использование смещенной формы позволяет производить операции над порядками, как над беззнаковыми числами, что упрощает операции сравнения, сложения и вычитания порядков, а также упрощает операцию сравнения самих нормализованных чисел. 62

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

Представляются в компьютере вещественных чисел. Продолжение. Стандартные форматы представления вещественных чисел: 1) одинарный — Представляются в компьютере вещественных чисел. Продолжение. Стандартные форматы представления вещественных чисел: 1) одинарный — 32 -разрядное нормализованное число со знаком, 8 -разрядным смещенным порядком и 24 -разрядной мантиссой (старший бит мантиссы, всегда равный 1, не хранится в памяти, и размер поля, выделенного для хранения мантиссы, составляет только 23 разряда). 2) двойной — 64 -разрядное нормализованное число со знаком, 11 -разрядным смещенным порядком и 53 -разрядной мантиссой (старший бит мантиссы не хранится, размер поля, выделенного для хранения мантиссы, составляет 52 разряда). 3) расширенный — 80 -разрядное число со знаком, 15 разрядным смещенным порядком и 64 -разрядной мантиссой. Позволяет хранить ненормализованные числа. 64

Выполнение арифметических операций над нормализованными числами К началу выполнения арифметического действия операнды операции помещаются Выполнение арифметических операций над нормализованными числами К началу выполнения арифметического действия операнды операции помещаются в соответствующие регистры АЛУ. Использование представления чисел с плавающей точкой существенно усложняет схему арифметико-логического устройства. 65

Выполнение арифметических операций над нормализованными числами. Сложение и вычитание. При сложении и вычитании сначала Выполнение арифметических операций над нормализованными числами. Сложение и вычитание. При сложении и вычитании сначала производится подготовительная операция, называемая выравниванием порядков. В процессе выравнивания порядков мантисса числа с меньшим порядком сдвигается в своем регистре вправо на количество разрядов, равное разности порядков операндов. После каждого сдвига порядок увеличивается на единицу. В результате выравнивания порядков одноименные разряды чисел оказываются расположенными в соответствующих разрядах обоих регистров, после чего мантиссы складываются или вычитаются. В случае необходимости полученный результат нормализуется путем сдвига мантиссы результата влево. После каждого сдвига влево порядок результата уменьшается на единицу. 66

Выполнение арифметических операций над нормализованными числами. Сложение. Пример 1. Сложить двоичные нормализованные числа 0. Выполнение арифметических операций над нормализованными числами. Сложение. Пример 1. Сложить двоичные нормализованные числа 0. 10111. 2 -1 и 0. 11011. 210. Разность порядков слагаемых здесь равна трем, поэтому перед сложением мантисса первого числа сдвигается на три разряда вправо: 67

Выполнение арифметических операций над нормализованными числами. Вычитание. Пример 2. Выполнить вычитание двоичных нормализованных чисел Выполнение арифметических операций над нормализованными числами. Вычитание. Пример 2. Выполнить вычитание двоичных нормализованных чисел 0. 10101 . 210 и 0. 11101 . 21. Разность порядков уменьшаемого и вычитаемого здесь равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо: Результат получился не нормализованным, поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0. 1101. 20. 68

Выполнение арифметических операций над нормализованными числами. Умножение При умножении двух нормализованных чисел их порядки Выполнение арифметических операций над нормализованными числами. Умножение При умножении двух нормализованных чисел их порядки складываются, а мантиссы перемножаются. Пример 4. Выполнить деление двоичных нормализованных чисел: 0. 1111. 2100 : 0. 101. 211 = (0. 1111 : 0. 101). 2(100 -11) = 1. 1. 21 = 0. 11. 210. 69

70 70

71 71

72 72

73 73

74 74

75 75

76 76

77 77

78 78

79 79

80 80

81 81

82 82

83 83

84 84

85 85

86 86