Скачать 123.38 Kb.
|
УРОК №23-24. Тема Представление вещественных чисел в компьютере. Цель урока: повторить понятия: машинное слово, прямой код, дополнительный код, ввести понятие нормализованной формы, обычная и двойная точность, мантисса, порядок. Задачи урока:
Материалы и оборудование к уроку: презентации, конспект урока, карточки с практической работой, файл с решением задач по теме (для отбора задач к уроку). Тип урока: комбинированный урок объяснения нового материала и решения задач. Форма проведения урока: беседа, практическая работа по решению задач. План урока: 1. Разбор контрольной работы и домашнего задания. 2. Актуализация полученных знаний. 3.Новый материал:
4. Закрепление изученного.5. Домашнее задание.Ход урока: 1. Разобрать ошибки контрольной работы. Показать на презентации ответы домашнего задания. Повторение: В какой системе счисления справедливо равенство: 21 + 24 = 100? Решение. Пусть x — искомое основание системы счисления. Тогда 100x = 1 · x2 + 0 · x1 + 0 · x0, 21x = 2 · x1 + 1 · x0, 24x = 2 · x1 + 4 · x0. Подставим все в исходное равенство: 2 · x1 + 1 · x0 + 2 · x1 + 4 · x0 =1 · x2 + 0 · x1 + 0 · x0 Имеем, 2 · x1 +1+ 2 · x1 +4 = x2 Таким образом, x2 = 2x + 2x + 5 или x2 - 4x - 5 = 0. Положительным корнем этого квадратного уравнения является x = 5. Ответ. Числа записаны в пятеричной системе счисления. 2. Актуализация полученных знаний. Вопросы учащимся: 1. Как вы поняли фразу: целые числа в компьютере хранятся в памяти в формате с фиксированной запятой или фиксированной точкой. Ответ: В этом случае каждому разряду ячейки памяти соответствует всегда один и тот же разряд числа, а запятая находится справа после младшего разряда, т.е. вне разрядной сетки. 2. Каков диапазон изменения целых неотрицательных чисел? Ответ: от 0 до 255. 3. Назовите диапазоны значений целых чисел без знака в двухбайтовом формате? Ответ: 0 ... 65535 (0 ... 216–1) 4. Что такое «машинное слово»? Ответ: размер ячеек памяти 5. Какие три формы записи (кодирования) целых чисел со знаком применяются в компьютерной технике? Ответ:
6. Как проводятся операции с отрицательными целыми числами в компьютере? Ответ: Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. В большинстве компьютеров операция вычитания не используется. Вместо нее производится сложение уменьшаемого с обратным или дополнительным кодом вычитаемого. Это позволяет существенно упростить конструкцию АЛУ. Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Деление для компьютера является трудной операцией. Обычно оно реализуется путем многократного прибавления к делимому дополнительного кода делителя. При выводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа. 7. В чем заключается алгоритм получения внутреннего представления целого положительного числа N, хранящегося в k разрядном машинном слове? Ответ: Алгоритм№1 1. Перевести число N в двоичную систему счисления. 2. Полученный результат дополнить слева незначащими нулями до k разрядов. 8. В чем заключается алгоритм получение внутреннего представления целого числа со знаком, хранящегося в k разрядном машинном слове (запись числа в прямом коде)? Ответ: Алгоритм№2
9. В чем заключается алгоритм перевода целого числа со знаком в обратный код?Ответ: Алгоритм№3
10. В чем заключается алгоритм перевода целого отрицательного числа в дополнительный код?Ответ: Алгоритм№4
11. Назовите алгоритм перевода дополнительного кода в десятичное число. Ответ: Алгоритм №5 1) Инвертировать дополнительный код 2) Прибавить к полученному коду 1 и получить модуль отрицательного числа: 3) Перевести в десятичное число и приписать знак отрицательного числа. 12. Назовите достоинства и недостатки представления чисел в формате с фиксированной запятой. Ответ: Достоинства:
Недостатки: Конечный диапазон представления величин недостаточен для решения математических, физических, экономических и других задач, где используются очень малые и очень большие числа. Выставление оценок за работу. 3. Новый материал:
Вещественными числами (в отличие от целых) в компьютерной технике называются числа, имеющие дробную часть. Вещественные числа хранятся и обрабатываются в компьютере в формате с плавающей запятой. Плавающая запятая или плавающая точка - положение запятой в записи числа может изменяться. Пример: 555,55 = 55555•10-2 = 0,55555•103 При написании вещественных чисел вместо запятой в компьютере принято писать точку. Так, например, число 5 — целое, а числа 5.1 и 5.0 — вещественные. Для удобства отображения чисел, принимающих значения из достаточно широкого диапазона (то есть, как очень маленьких, так и очень больших), используется форма записи чисел с порядком основания системы счисления. Например, десятичное число 1.25 можно в этой форме представить так: 1.25*100 = 0.125*101 = 0.0125*102 = ... , или так: 12.5*10–1 = 125.0*10–2 = 1250.0*10–3 = ... . Формат числа с плавающей запятой (с плавающей точкой) базируется на экспоненциальной форме записи, в которой может быть представлено любое число А: А = m • qn, где m – мантисса числа, q – основание системы счисления., n – порядок числа. Пример: 0,55555•103 2. Нормализованная форма числа.Чтобы привести к какому-то стандарту в представлении чисел с плавающей запятой условились представлять числа в нормализованной форме. Если “плавающая” точка расположена в мантиссе перед первой значащей цифрой, то при фиксированном количестве разрядов, отведённых под мантиссу, обеспечивается запись максимального количества значащих цифр числа, то есть максимальная точность представления числа в машине. Из этого следует: Мантисса должна быть правильной дробью, первая цифра которой отлична от нуля: M из [0.1, 1). 1/n | m | < 1 Такое, наиболее выгодное для компьютера, представление вещественных чисел называется нормализованным. Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание — в десятичной системе. Пример: 555,55 – естественная форма записи вещественного числа 0,55555•103 - нормализованная форма, 0,55555 -мантисса 0,55555 > 1/3 0,3333… 0,55555 < 1 Это касается и отрицательных чисел, поэтому мантисса в условии взята по модулю. Задание записать числа десятичной и двоичной системы счисления в нормализованной форме: Примеры нормализованного представления: Десятичная система Двоичная система 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) 3. Числа обычной и двойной точности.Дробные числа занимают в памяти 4 байта (обычная точность, 32 бита) или 8 байтов (двойная точность, 64 бита). Для записи таких чисел выделяются разряды для хранения: знака мантиссы, знака порядка, порядка числа мантиссы. Например: для чисел с обычной точностью: 1-й байт 2-й байт 3-й байт 4-й байт ± порядок ЗНАК И М А Н Т И С С А •в старшем бите 1-го байта хранится знак порядка числа 0 – обозначает плюс, 1 – минус; • 7 бит 1 байта содержат порядок; • в следующих трех байтах, хранятся значащие цифры мантиссы и её знака (24 разряда). Следовательно, диапазон изменения чисел определяется количеством разрядов, отведенных для хранения порядка числа, а точность (количество значащих цифр) определяется количеством разрядов, отведенных для хранения мантиссы. Вещественные числа в компьютерах различных типов записываются по-разному. При этом компьютер обычно предоставляет программисту возможность выбора из нескольких числовых форматов наиболее подходящего для конкретной задачи — с использованием четырех, шести, восьми или десяти байтов. В качестве примера приведем характеристики форматов вещественных чисел, используемых IBM-совместимыми персональными компьютерами:
Из этой таблицы видно, что форма представления чисел с плавающей точкой позволяет записывать числа с высокой точностью и из весьма широкого диапазона. 4. Сложение и вычитание чисел в формате с плавающей запятой.При сложении и вычитании сначала производится подготовительная операция, называемая выравниванием порядков. В процессе выравнивания порядков мантисса числа с меньшим порядком сдвигается в своем регистре вправо на количество разрядов, равное разности порядков операндов. После каждого сдвига порядок увеличивается на единицу.Другими словами: порядок меньшего (по модулю) числа увеличивается до величины порядка большего (по модулю) числа. Для того, чтобы величина числа не изменилась, мантисса уменьшается в такое же количество раз (сдвигается в ячейке памяти вправо на количество разрядов, равное разности порядков чисел)В результате выравнивания порядков одноименные разряды чисел оказываются расположенными в соответствующих разрядах обоих регистров, после чего мантиссы складываются или вычитаются. После выполнения арифметической операции для приведения полученного числа к стандартному формату с плавающей запятой производится нормализация. Полученный результат нормализуется путем сдвига мантиссы результата влево. После каждого сдвига влево порядок результата уменьшается на единицу. Итак, Алгоритм сложения и вычитания чисел в формате с плавающей запятой:
5.Умножение и деление чисел в формате с плавающей запятой.Алгоритм умножения чисел в формате с плавающей запятой: 1. Сложить порядки 2. Перемножить мантиссы Алгоритм деления чисел в формате с плавающей запятой: 1. Из порядка делимого вычесть порядок делителя 2. Мантиссу делимого делить на мантиссу делителя. 4. Закрепление изученного.Задача 1. Для представления вещественного числа отводится 8 байт. Порядок занимает 11 бит. Сколько значащих цифр будет содержать двоичная мантисса? Решение: Число занимает 64 разряда, из них 11 разрядов на машинный порядок, значит, на знак числа и мантиссу отводится 64-11 =53 бит, на мантиссу 52 бита Ответ: 52 бита. Задача 2. Определите максимальное число и его точность для формата чисел двойной точности, если для хранения порядка и его знака отводится 11 разрядов, а для хранения мантиссы и ее знака 53 разряда. Решение: Так как на хранение порядка и его знака отводится 11 разрядов, то на один порядок отводится 10 разрядов. Тогда максимальное значение порядка 11111111112 =102310 Следовательно, максимальное значение числа составит 21023 = 8,988465674311579538646525953945* 10307 Точность вычислений определяется количеством разрядов, отведенных для хранения мантиссы чисел. Так как для хранения мантиссы и ее знака отводится 53 разряда, то на саму мантиссу отводится 52 знака и максимальное значение положительной мантиссы равно 252 –1 252 =2(10*5.2) (210) 5,2 10005,2 =10(3*5,2) =1015,6 1016 Максимальное значение числа двойной точности с учетом возможной точности вычислений составит 8,988465674311579 * 10307 (количество значащих цифр десятичного числа в данном случае ограничено 16 разрядами). Ответ: 8,988465674311579 * 10307 Из решения этой задачи можно сделать вывод:
Задание 3. Записать следующие числа в форме с плавающей запятой и нормализованной мантиссой: а) 217, 93410 ; б) 7532110 ; в) 10,010110 ; г) 20045010 ([2], стр.64, №2.55) Решение: а) 217, 93410 =0,217934103 , где 0,217934 –нормализованная мантисса, порядок -3 б) 7532110 =0,75321105 , где 0,75321 –нормализованная мантисса, порядок -5 в) 10,010110 = 0, 100101102 , где 0, 100101 –нормализованная мантисса, порядок -2 г) 20045010 = 0,200450 106 , где 0,200450 –нормализованная мантисса, порядок -6 Задание 4.Произвести сложение чисел 0,1×23 и 0,1×25 в формате с плавающей запятой. Решение: Произведем выравнивание порядков и сложение мантисс: 0,1×23 = Х×25 , Х=(0,1×23)/ 25=0,1×2-2=0,001 0,001×25 +0,100×25 0,101×25 Ответ: 0,101×25 Задание 5.Произвести умножение чисел 0,1×23 и 0,1×25 в формате с плавающей запятой. Решение: После умножения будет получено число 0,01×28, которое после нормализации примет вид 0,1×27. Ответ: 0,1×27. Задание 6.Сложить двоичные нормализованные числа 0.10111•2–1 и 0.11011*210. Решение: Разность порядков слагаемых здесь равна трем (10-(-1)=10+1=112 = 310), поэтому перед сложением мантисса первого числа сдвигается на три разряда вправо: Ответ получили в нормализованной форме. Задание 7.Выполнить вычитание двоичных нормализованных чисел 0.10101*210 и 0.11101*21. Решение: Разность порядков уменьшаемого и вычитаемого здесь равна единице (10-1=1), поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо: Результат получился не нормализованным, поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0.1101*20. Задание 8. Выполнить умножение двоичных нормализованных чисел 0.11101*2101 и 0.1001*211 : Решение: Складываем порядки и перемножаем мантиссы. (0.11101*2101)*(0.1001*211) = (0.11101*0.1001)* 2(101+11) = 0.100000101*21000 Задание 9. Выполнить деление двоичных нормализованных чисел 0.1111*2100 и 0.101*211: Решение: из порядка делимого вычитаем порядок делителя, а мантисса делимого делится на мантиссу делителя, ответ нормализуется: 0.1111*2100 : 0.101*211 = (0.1111 : 0.101) * 2(100–11) = 1.1*21 = 0.11•210. Учитель: Использование представления чисел с плавающей точкой существенно усложняет схему арифметико-логического устройства. 5. Домашнее задание.1. Угринович Н.Д. (учебник), стр.106-107. 2. Разобрать пример 2.40 (практикум, стр. 61) 3. № 2. 57. стр.64. |