Представление информации в памяти компьютера

Скачать презентацию Представление информации в памяти компьютера Скачать презентацию Представление информации в памяти компьютера

кОмпьютерное представление чисел.ppt

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

>  Представление информации в памяти компьютера Представление информации в памяти компьютера

>  Формы записи числа Aq = ± (an-1*qn-1 + an-2*qn-2+ … + a Формы записи числа Aq = ± (an-1*qn-1 + an-2*qn-2+ … + a 0*q 0 + a-1*q-1 +a-2*q-2+a- m*q ), -m где Aq — число, q — основание системы счисления, ai — цифры алфавита данной системы счисления, n — количество разрядов целой части числа, m — количество разрядов дробной части числа.

>   Формы записи числа Aq = ± (an-1*qn-1 + an-2*qn-2+ … + Формы записи числа Aq = ± (an-1*qn-1 + an-2*qn-2+ … + a 0*q 0 + a-1*q-1 +a-2*q-2+a- m*q ), -m Например: 26, 38710 = 2*101 + 6*100 + 3*10 -1 + 8*10 -2 +7*10 -3; 101, 112 = 1*22 + 0*21 + 1*20 + 1*2 -1 +1*2 -2.

>   Размещение информации в памяти    компьютера y=x+b;  b=5; Размещение информации в памяти компьютера y=x+b; b=5; b- константа x, y - переменные • область с именем b • область с именем x • область с именем y

>Особенности представления чисел в компьютерах  • Целые числа • Вещественные числа Особенности представления чисел в компьютерах • Целые числа • Вещественные числа

> Представление целых чисел 0000 – 0 0001 – 1 0010 – 2 0011 Представление целых чисел 0000 – 0 0001 – 1 0010 – 2 0011 – 3 0100 – 4 0101 – 5 0110 – 6 0111 – 7 1000 – 8 1001 – 9 1010 – 10 1011 – 11 1100 – 12 1101 – 13 1110 – 14 1111 – 15 16 ? – переполнение (overflow)

> Представление целых чисел  Связано ли переполнение со системой счисления? Представление целых чисел Связано ли переполнение со системой счисления?

>  Целые числа без знака Чтобы закодировать целое число без знака, достаточно перевести Целые числа без знака Чтобы закодировать целое число без знака, достаточно перевести его в двоичную систему счисления и дополнить старшие разряды (слева) нулями до требуемой разрядности. Например: 2810 в 8 разрядах 0001 1100 в 16 разрядах 0000 0001 1100.

>  Целые числа без знака     min   Целые числа без знака min max 8 разрядов 0000 1111 0 255 min 16 разрядов 0000 0 max 1111 63 535

> Целые числа без знака K – разрядность (количество бит)   Xmax =2 Целые числа без знака K – разрядность (количество бит) Xmax =2 k -1

> Целые числа без знака В языке Паскаль для размещения беззнаковых  целых чисел Целые числа без знака В языке Паскаль для размещения беззнаковых целых чисел используется тип BYTE и WORD. Переменные типа Byte занимают 1 байт в памяти компьютера, их значения лежат в диапазоне от 0 до 255. Переменные типа Word занимают 2 байта в памяти компьютера, их значения лежат в диапазоне от 0 до 65 535.

> Целые числа без знака  Особенности переполнения K=8. Максимальное число равно 255 (11112). Целые числа без знака Особенности переполнения K=8. Максимальное число равно 255 (11112). Если добавить к этому числу 1 произойдёт переполнение и процессор вытесняет старшую единицу двоичного числа 1 0000, оставляя в реальных 8 разрядах 0000, т. е. 0. Вычитая единицу из минимального значения 0, к которому добавлен старший разряд за пределами 8 - битной ячейки, получим 1112=25510.

>Целые числа без знака      FF 16   0 Целые числа без знака FF 16 0 255 С 016 64 4016 192 128 8016

>Числовая система компьютера является конечной и цикличной Числовая система компьютера является конечной и цикличной

> Целые числа со знаком    Прямой код 4 -х разрядная ячейка: Целые числа со знаком Прямой код 4 -х разрядная ячейка: +4 0100 -4 1100

> Целые числа со знаком    Прямой код 4 -х разрядная ячейка: Целые числа со знаком Прямой код 4 -х разрядная ячейка: +4 0100 -4 1100

>Сложение и вычитание в 2 с/с Сложение и вычитание в 2 с/с

>Операции над целыми числами со   знаком  Множество двоичных чисел бесконечно, а Операции над целыми числами со знаком Множество двоичных чисел бесконечно, а разрядная сетка представления компьютерного числа конечна.

> Операции над целыми числами со    знаком Если при сложении результат Операции над целыми числами со знаком Если при сложении результат «не умещается» в разрядную сетку, происходит вытеснение старшего бита в несуществующий бит слева – явление переполнения сверху. 1111+0000 0001 =1 0000; 1 0000 0 0001 0 1111 (-1) Заметим, что фактически вычитается не из 0, а из 256.

> Коды отрицательных чисел 1111  принимается за -1 1110    Коды отрицательных чисел 1111 принимается за -1 1110 -2 1111 1101 -3 1111 1000 -4 В общем случае вычисление происходит по формуле 2 к-Х (К – количество разрядов в разрядной сетке представления числа; Х – вычитаемое). Это способ кодирования отрицательных чисел, но…

> Коды отрицательных чисел  Другой способ кодирования  отрицательных чисел.   Коды отрицательных чисел Другой способ кодирования отрицательных чисел. -Х=-Х-1+1=(-1 -Х)+1 Значит, для вычисления значения -Х необходимо из -1 (1111) вычесть Х и затем прибавить единицу (00001). При вычитании любого числа из 1111 есть что «занимать» , следовательно, эта операция вычитания всегда возможна.

> Коды отрицательных чисел  Другой способ кодирования  отрицательных чисел.  Например: 1111 Коды отрицательных чисел Другой способ кодирования отрицательных чисел. Например: 1111 – 0000 1011=1111 0100. инверсия

> Коды отрицательных чисел Правило (алгоритм) получения кода  отрицательного целого числа (-Х): 1. Коды отрицательных чисел Правило (алгоритм) получения кода отрицательного целого числа (-Х): 1. выполнить инверсию каждого разряда двоичного представления числа Х. Полученный код называется обратным. 2. к полученному результату прибавить единицу. В результате получается дополнительный код, т. к. он дополняет число до 2 К.

>  Коды отрицательных чисел Например, определим дополнительный код числа «-  16» , Коды отрицательных чисел Например, определим дополнительный код числа «- 16» , который хранится в 8 -разрядной ячейке. Х=16=100002 Х 2 =0001 0000 инверсия (not Х) 1110 1111 +1 1111 0000 Для проверки можно сложить полученный результат с исходным числом и убедиться, что сумма обратиться в ноль (перенос из старшего разряда не учитываем): 11110000 -16 0001 0000 +16 0000

> Коды отрицательных чисел Повторное применение алгоритма всегда приводит к восстановлению первоначального числа. Вместо Коды отрицательных чисел Повторное применение алгоритма всегда приводит к восстановлению первоначального числа. Вместо вычитания используется сложение с дополнительным кодом вычитаемого, поэтому не нужно проектировать специальное устройство для вычитания чисел.

>Х 10  -128  -127  …     -1 Х 10 -128 -127 … -1 0 1 … 127 Х 16 80 81 … FF 00 01 … 7 F Х 2 1000 1 0001 … 1111 0000 0001 … 0111 1111 8016 7 F 16 -128 127 С 016 -64 64 4016 -1 0 1 0116 FF 16 016

>Код 0 1   2 …  7 F  80  Код 0 1 2 … 7 F 80 81 … FE FF Без 0 1 2 … 127 128 129 … 254 255 знака Со 0 1 2 … 127 -128 -127 … --2 -1 знаком Числа со знаком -128 0 127 255 Беззнаковые числа

>К  8  16  32     64 Хmax К 8 16 32 64 Хmax 127 32 767 2 147 483 647 9 223 372 036 854 775 807 Хmin -128 -32 768 - 2 147 483 648 -9 223 372 036 854 775 808

>   В программировании переменные целого типа Byte занимают 1 байт памяти В программировании переменные целого типа Byte занимают 1 байт памяти компьютера, их значения лежат в диапазоне от 0 до 255. Тип Byte является беззнаковым переменные целого типа Word занимают 2 байта памяти компьютера, их значения лежат в диапазоне от 0 до 65535. Тип Word является беззнаковым переменные целого типа Integer занимают 2 байта памяти компьютера, их значения лежат в диапазоне от -32768 до 32767. Тип Integer является знаковым

>ОПЕРАЦИИ С ЦЕЛЫМИ ЧИСЛАМИ ОПЕРАЦИИ С ЦЕЛЫМИ ЧИСЛАМИ

>  Сложение и вычитание Используются не только для расчётов по формулам, но и Сложение и вычитание Используются не только для расчётов по формулам, но и для организации вычислений (например, счётчик). Благодаря тому, что отрицательные числа кодируются в дополнительном коде, операция вычитания заменяется операцией сложения и выполняется по одному алгоритму. Со знаковым разрядом обращаются точно также как и со всеми остальными.

>    Примеры (для 8 -разрядной арифметики)  5 + 7: Примеры (для 8 -разрядной арифметики) 5 + 7: 000 01012 (510) + 000 01112 (710) =000 11002 (1210).

>   Примеры (для 8 -разрядной арифметики)  5 -9: 510=0000 01012 – Примеры (для 8 -разрядной арифметики) 5 -9: 510=0000 01012 – прямой код числа 5 +910=0000 10012 – прямой код числа +9 1111 01102 – обратный код числа +9 +12 1111 01112 – доп. код числа -9

>   Примеры (для 8 -разрядной арифметики)  0000 01012+1111 01112=1111 11002 это Примеры (для 8 -разрядной арифметики) 0000 01012+1111 01112=1111 11002 это число отрицательное. По схеме дополнительного кода 1111 11002 – исходное число 0000 00112 – обратный код (инверсия) +1 0000 01002 – дополнительный код =410 Результат: 5 -9=-4

>  Переполнение в результате   сложения При сложении двух чисел с одинаковыми Переполнение в результате сложения При сложении двух чисел с одинаковыми знаками может случиться переполнение – сумма будет содержать слишком большое количество разрядов. Например, 96+33 В знаковом представлении 96 0 110 0000 33 0 010 0001 1 0001 (-127)

> Обнаружение ошибки Старший (знаковый) бит S дублируется слева S’. Выполняется поразрядное сложение вместе Обнаружение ошибки Старший (знаковый) бит S дублируется слева S’. Выполняется поразрядное сложение вместе со знаковым разрядом. При сравнении двух знаковых бита суммы фиксируется, что результат неверный. 0 0 1100000 (9610) 0 0 0100001 (3310) 0 1 0000001 S’ S

>   Сумматор • Сложение многоразрядных двоичных  чисел в компьютере выполняет Сумматор • Сложение многоразрядных двоичных чисел в компьютере выполняет специальное устройство – сумматор. • Вычитание сводится к сложению с дополнительным кодом вычитаемого, поэтому отдельного «блока вычитания» в компьютере нет.

> Умножение и деление Умножение заменяют многократным сложением, а деление – многократным вычитанием. Умножение и деление Умножение заменяют многократным сложением, а деление – многократным вычитанием.

>  Двоичное умножение  910 (0000 10012) х 510 (0000 01012)  Двоичное умножение 910 (0000 10012) х 510 (0000 01012) 00001001 х 00000101 00001001 00001001___ 0000101101 (4510)

> Компьютерное умножение • вычисление очередного произведения в  зависимости от младшего бита второго Компьютерное умножение • вычисление очередного произведения в зависимости от младшего бита второго сомножителя: оно равно нулю (если этот бит нулевой) или первому сомножителю (если бит равен единице); • сложение содержимого сумматора с очередным произведением; • сдвиг содержимого сумматора влево на один разряд; • сдвиг второго сомножителя вправо на 1 разряд.

> • Умножение, как и сложение, выполняется одинаково для  положительных и отрицательных чисел • Умножение, как и сложение, выполняется одинаково для положительных и отрицательных чисел (в дополнительном коде). • Деление можно рассматривать как многократное вычитание.

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

>Код   0  1  2  …  7 F Код 0 1 2 … 7 F 80 81 … FE FF Без 0 1 2 … 127 128 129 … 254 255 знака Со 0 1 2 … 127 -128 -127 … --2 -1 знаком 7 F 16 сравнить с 8116 Без знака: 12910 > 12710 Со знаком: -12710 < 12710

>   Сдвиги двоичного числа позволяют быстро умножить или разделить число на степень Сдвиги двоичного числа позволяют быстро умножить или разделить число на степень двойки: 2, 4, 8 и т. д. Программисты часто пользуются различными сдвигами.

> Идея операции сдвига Все биты кода одновременно сдвигаются в соседние разряды влево или Идея операции сдвига Все биты кода одновременно сдвигаются в соседние разряды влево или вправо. Аппаратная реализация сдвига: регистр, содержащий число сбрасывается в ноль, при этом из тех разрядов, где исчезла единица, электрический импульс проходит в соседние разряды и устанавливает их в единицу. При этом важно, что все разряды обрабатываются одновременно.

>Логический сдвиг Логический сдвиг

>     Пример Логический сдвиг используют для быстрого умножения и деления Пример Логический сдвиг используют для быстрого умножения и деления 1210 8 -разрядный код 0000 1100. После логического сдвига влево получим 0001 1000=24 10 Логический сдвиг влево на 1 разряд увеличивает целое положительное число вдвое, а сдвиг вправо делит на 2 нацело.

>Сдвиг для отрицательных чисел «-8» .  Восьмиразрядное представление этого числа 1111 1000. При Сдвиг для отрицательных чисел «-8» . Восьмиразрядное представление этого числа 1111 1000. При сдвиге влево получится 1111 0000. А это число – дополнительный код числа «-1610» . Значит число удвоилось! При сдвиге вправо получится 0111 1100. Результат не верен.

>  Арифметический сдвиг Применяется для отрицательных чисел. Его единственное отличие от логического состоит Арифметический сдвиг Применяется для отрицательных чисел. Его единственное отличие от логического состоит в том, что, старший бит (знаковый) не меняется, т. е. знак числа остаётся прежним.

>  Пример арифметического   сдвига Применим арифметический сдвиг вправо к 8 -разрядному Пример арифметического сдвига Применим арифметический сдвиг вправо к 8 -разрядному коду десятичного числа « -8» 1111 1000. Получается 1111 1100 – дополнительный код числа «-4» . При арифметическом сдвиге вправо отрицательного числа «-8» получилось деление исходного числа на 2.

>  Циклический сдвиг Используется в программировании для  «просмотра» (мониторинга,  отслеживания) одного Циклический сдвиг Используется в программировании для «просмотра» (мониторинга, отслеживания) одного из битов. При циклическом сдвиге бит из одного крайнего разряда переносится в другой крайний «по кругу» ( «по циклу» ).

>Циклический сдвиг влево Циклический сдвиг влево

>  Циклический сдвиг Если сделать последовательно 8 циклических сдвигов 8 -битного числа, то Циклический сдвиг Если сделать последовательно 8 циклических сдвигов 8 -битного числа, то каждый его бит на каком-то шаге окажется на месте младшего разряда, где его уже можно выделить определёнными программистскими приёмами (с помощью логической операции «И» с маской 1). Циклический сдвиг позволяет «просмотреть» все биты и вернуться к исходному значению.

>ХРАНЕНИЕ В ПАМЯТИ ВЕЩЕСТВЕННЫХ ЧИСЕЛ ХРАНЕНИЕ В ПАМЯТИ ВЕЩЕСТВЕННЫХ ЧИСЕЛ

> • Целые числа дискретны, а  вещественные – непрерывны, а значит  не • Целые числа дискретны, а вещественные – непрерывны, а значит не могут быть полностью корректно перенесены в дискретную по своей природе вычислительную машину.

> Масштабирование данных Маленькие числа умножались на определённые коэффициенты, а большие, напротив, делились. Масштабирование данных Маленькие числа умножались на определённые коэффициенты, а большие, напротив, делились. Масштабы подбирались так, чтобы результаты всех операций, включая промежуточные, не выходили за пределы разрядной сетки, и в то же время обеспечивалась максимально возможная точность (все разряды данных по возможности находились в пределах сетки).

> Числа с плавающей запятой (floating point – плавающая точка)    А=±Z·BP, Числа с плавающей запятой (floating point – плавающая точка) А=±Z·BP, где Z называют значащей частью, Р – порядком числа. Например, заряд электрона равен -1, 6· 10 -19 кулона, а скорость света в вакууме составляет 3· 108 м/с.

>  Неоднозначность 23, 4   2340· 10 -2=   234· 10 Неоднозначность 23, 4 2340· 10 -2= 234· 10 -1= 23, 4· 100= 2, 34· 101= 0, 234· 102= 0, 0234· 103=…

>Оптимальное представление Чтобы не записывать 0 дробной части в  разряды числа оптимальным будет Оптимальное представление Чтобы не записывать 0 дробной части в разряды числа оптимальным будет вариант, когда целая часть равна нулю, а первая ненулевая цифра находится сразу после запятой. В нашем примере: 0, 234. Можно не указывать целую часть и разделительную запятую. Осталось указать только порядок.

>  Способы представления • оптимальный с теоретической точки  зрения, в котором целая Способы представления • оптимальный с теоретической точки зрения, в котором целая часть нулевая, а первая цифра дробной части ненулевая (0, 234· 102); • более удобный с практической точки зрения, в котором целая часть состоит из единственной ненулевой цифры (2, 34· 101).

>Компьютерное представление В компьютере используется такое представление вещественных чисел с плавающей запятой, при котором Компьютерное представление В компьютере используется такое представление вещественных чисел с плавающей запятой, при котором значащая часть Z удовлетворяет условию 1≤ Z ≤ B , где В – основание системы счисления. Такое представление называется нормализованным. • Нормализованное представление числа единственно. Например: 2, 34· 101.

>   Нормализация Любое число может быть легко нормализовано.  Единственное, но важное Нормализация Любое число может быть легко нормализовано. Единственное, но важное исключение из правила составляет нуль – для него невозможно получить Z 1. Число 0, в котором все биты нулевые, в качестве исключения считается нормализованным.

> Представление двоичных чисел   А=± Z· 2 P, причём  1 ≤ Представление двоичных чисел А=± Z· 2 P, причём 1 ≤ Z < 2. Например: -710=-111· 20=-1, 11· 210. В этой записи значащая часть и порядок записаны в двоичной системе! Z=1, 11; P=10.

>  Скрытая единица Значащая часть двоичного числа (исключая, разумеется, ноль!) начинается с единицы, Скрытая единица Значащая часть двоичного числа (исключая, разумеется, ноль!) начинается с единицы, т. к. 1 ≤ Z < 2. Это так называемая скрытая единица не хранится в ОЗУ, что позволяет сэкономить ещё один дополнительный разряд значащей части. То, что остаётся после «скрытия» единичной целой части, можно вполне обоснованно называть «мантиссой» .

>    Итак • При кодировании вещественного числа  с плавающей запятой Итак • При кодировании вещественного числа с плавающей запятой фактически хранятся две величины: его значащая часть (significant) и порядок. • От разрядности значащей части зависит точность вычислений. • От разрядности порядка зависит диапазон представления чисел.

> Характеристики стандартных  вещественных типов данных,  используемых в математическом  сопроцессоре Intel Характеристики стандартных вещественных типов данных, используемых в математическом сопроцессоре Intel

>Планирование памяти под Single 4 байта (32 бита) 23 младших бита (с номерами от Планирование памяти под Single 4 байта (32 бита) 23 младших бита (с номерами от 0 до 22) хранят значащую часть числа. Следующие 8 битов (с номерами от 23 до 30) хранят порядок числа. 1 старший (31 бит) отведён под знак числа.

> Размещение данных типа    Single 3 3 2 2 2 2 Размещение данных типа Single 3 3 2 2 2 2 2 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0 Правила двоичного кодирования вещественных чисел во многом отличаются от правил кодирования целых чисел.

>Например: -17, 2510  • 17, 25=10001, 012.  • Нормализация: передвинем запятую на Например: -17, 2510 • 17, 25=10001, 012. • Нормализация: передвинем запятую на 410=1002 разряда влево 10001, 012· 20=1, 000101· 2100 • Построим значащую часть, «скрыв» единицу в целой части: M =Z -1=0, 0001010… 0. • Исходное число (-17, 25) отрицательное. Следовательно знаковый разряд нужно установить в единицу.

>  Размещение данных типа   Single 3 3 2  2 2 Размещение данных типа Single 3 3 2 2 2 2 22 2 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 21 0 9 8 7 6 5 4 3 2 1 0 1 00 0 1 0 0 0 0 0 В отличие от целых чисел значащая часть вещественных чисел храниться в прямом коде. Таким образом, значащие части положительного и равного по модулю отрицательного числа одинаковы, а отличаются они только старшим (знаковым битом) S.

> Кодирование порядка Кодирование со смещением Pd=P+d, Pd>0 Для чисел типа single d=12710=7 F Кодирование порядка Кодирование со смещением Pd=P+d, Pd>0 Для чисел типа single d=12710=7 F 16. Для нашего примера порядок P=1002. 12710=0111 11112. Тогда Pd=1002 +111 11112 =1000 00112.

> Кодирование порядка Соберём теперь Значащую часть М,  порядок со сдвигом Pd и Кодирование порядка Соберём теперь Значащую часть М, порядок со сдвигом Pd и знак S в единое 32 -разрядное двоичное число: 1 10000011 000101000000000 C 1 8 A 00 0016. 00 00 8 А С 1.

>  NAN числа Имеют максимально возможный порядок.  • чисел типа single при NAN числа Имеют максимально возможный порядок. • чисел типа single при смещённом порядке Pd =255; • чисел типа double при смещённом порядке Pd =2047. Подобные «неправильные» данные возникают только в результате ошибок в вычислениях.

>    Итак Мы увидели, что целые и вещественные числа хранятся в Итак Мы увидели, что целые и вещественные числа хранятся в памяти компьютера совершенно по-разному. Поэтому представление чисел 3 и 3. 0 будет разным. По-разному будут производиться для этих чисел и действия компьютерной арифметики.

>  Программирование На языке Паскаль для вещественных чисел используются переменные типа Real. Под Программирование На языке Паскаль для вещественных чисел используются переменные типа Real. Под эту переменную в памяти компьютера отводится 6 байт (48 бит): 39 бит под значимую часть (мантиссу). Тем самым достигается точность до 11 -12 десятичных знаков после запятой. Переменные этого типа могут принимать значения по модулю от минимального 2, 9· 10 -39 до максимального 1, 7· 10 -38.

>Характеристики вещественных типов Название  Обознач  Кол-во дес. Диапазон  Длина  Характеристики вещественных типов Название Обознач Кол-во дес. Диапазон Длина ение знач. цифр изменения внутреннего порядка представлен ия в байтах Вещественный Real 11 … 12 -39 … +38 6 Одинарной Single 7 … 8 -45 …+38 4 точности Двойной Double 15 … 16 -324 … +308 8 точности Расширенный Extended 19 … 20 -4951 … +4932 10 От разрядности значащей части зависит точность вычислений, а от разрядности порядка – диапазон представления чисел.

>ОПЕРАЦИИ С ВЕЩЕСТВЕННЫМИ ЧИСЛАМИ ОПЕРАЦИИ С ВЕЩЕСТВЕННЫМИ ЧИСЛАМИ

>  Пример: Сложение Сложим 7, 2510=111, 012 и 1, 7510=1, 112.  1. Пример: Сложение Сложим 7, 2510=111, 012 и 1, 7510=1, 112. 1. Нормализация: 111, 01*20=1, 1101*210 1, 11*20 значащие части и порядки чисел указаны в двоичной системе счисления Не будем использовать «скрытую» единицу, которая используется только при сохранении чисел в памяти

>  Пример: Сложение 2. Выравнивание порядков:  Процессор перед сложением вещественных чисел выравнивает Пример: Сложение 2. Выравнивание порядков: Процессор перед сложением вещественных чисел выравнивает их порядки до большего

>  Алгоритм выравнивания: 1. Если p 2=p 1, то порядки выровнены и преобразования Алгоритм выравнивания: 1. Если p 2=p 1, то порядки выровнены и преобразования закончены 2. p 2= p 2+1 3. Сдвинуть значащую часть z 2 на один разряд вправо 4. перейти к шагу 1.

>Блок-схема выравнивания порядков Блок-схема выравнивания порядков

>   Пример: сложение 2. Выравнивание порядков:   1, 1101*210  1, Пример: сложение 2. Выравнивание порядков: 1, 1101*210 1, 11*20 =0, 0111*210. 3. Сложение 1, 1101 0, 0111 10, 0100 10, 01*210=910 10, 01*210=1, 001*211

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

>   Особые случаи Например,  • значащая часть занимает 24 разряда • Особые случаи Например, • значащая часть занимает 24 разряда • разность порядков у чисел A и B (B 0) составляет 2610 • при выравнивании порядков произойдёт 26 сдвигов значащей части вправо • абсолютно все (!) её разряды исчезнут. В результате сложения окажется, что A+B=A, хотя B 0.

>  Умножение и деление • При перемножении достаточно  перемножить их значащие части, Умножение и деление • При перемножении достаточно перемножить их значащие части, а порядки сложить. • При делении значащие части делятся, а порядки вычитаются. • Результат приводится (при необходимости) к нормализованному виду.

>  Пример: умножение Умножим числа 1, 2510=1, 012 и 4, 010=100, 02. Нормализованный Пример: умножение Умножим числа 1, 2510=1, 012 и 4, 010=100, 02. Нормализованный вид: 1, 01= 1, 01*20 и 100*20=1, 0*210 1, 01*1, 0=1, 01 (значащие части) 0+10=10 (порядки) Результат: 1, 01*210 (уже нормализованный вид) 1, 01*210=101*20=510.

>   Выводы • Для хранения чисел в памяти  компьютера используется конечное Выводы • Для хранения чисел в памяти компьютера используется конечное число разрядов. Из-за этого числа в компьютере имеют ограниченный диапазон, а результаты вычислений могут быть неточными (погрешности вычислений).

>   Выводы • Для хранения целого числа может  быть использовано 8, Выводы • Для хранения целого числа может быть использовано 8, 16, 32 или 64 бита памяти. Каждый дополнительный бит расширяет диапазон допустимых чисел в 2 раза.

>   Выводы • Отрицательные числа хранятся в  дополнительном двоичном коде, Выводы • Отрицательные числа хранятся в дополнительном двоичном коде, который позволяет выполнять вычисления с положительными и отрицательными числами по одному и тому же алгоритму.

>   Выводы • Вещественные числа хранятся в  памяти компьютера в формате Выводы • Вещественные числа хранятся в памяти компьютера в формате с плавающей запятой: отдельно значащая часть и порядок. Из-за ограниченности числа разрядов вещественное число, как правило, не удаётся точно представить в памяти.

>   Выводы • От разрядности значащей части  зависит точность вычислений, а Выводы • От разрядности значащей части зависит точность вычислений, а от разрядности порядка – диапазон представления чисел

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

>ПРОГРАММИРОВАНИЕ ПРОГРАММИРОВАНИЕ

>  Допустимые арифметические  операции в языке Паскаль Переменные типа данных «целое» принимают Допустимые арифметические операции в языке Паскаль Переменные типа данных «целое» принимают только целочисленные значения. Над целыми числами допустимы основные арифметические операции: • сложение (“+”), • вычитание (“-“), • умножение (“*”),

> Допустимые арифметические  операции в языке Паскаль • выделение частного от деления (div): Допустимые арифметические операции в языке Паскаль • выделение частного от деления (div): ( 5 div 2 результат 2) • выделение остатка от деления (mod): (5 mod 2 результат 1) Операции div и mod не могут быть использованы при работе с переменными типа Real.

>  Арифметические операции над  действительными числами Над действительными операндами можно выполнять следующие Арифметические операции над действительными числами Над действительными операндами можно выполнять следующие арифметические операции, дающие действительный результат: • сложение( «+» ) • вычитание ( «-» ) • умножение ( «*» ) • деление ( «/» )

> • При написании программы следует не  допускать ошибок, связанных с  несовместимостью • При написании программы следует не допускать ошибок, связанных с несовместимостью типов переменных.

>Использование типов переменных в   функциях • При использовании стандартных  функций языка Использование типов переменных в функциях • При использовании стандартных функций языка программирования необходимо строго соблюдать типы переменных как аргументов, так и самой функции.