МОУ СОШ 3 18 г.Пензы
Кодирование вещественных чисел. Представление чисел в формате с плавающей запятой.
Цели:
научить учащихся представлять вещественные числа в памяти компьютера;
развивать логическое мышление, умение анализировать и обобщать;
повышать интерес учащихся к предмету “информатика”.
Требования к знаниям и умениям:
Учащиеся должны знать:
формат записи вещественных чисел памяти компьютера;
Учащиеся должны уметь:
представлять вещественные числа в форме с плавающей запятой и нормализованной мантиссой.
Ход урока
Актуализация знаний
Какие наибольшие и наименьшие значения чисел с фиксированной запятой можно представить в компьютере в одно-, двух- и четырехбайтовой разрядной сетке?
Сформулируйте алгоритм внутреннего представления в памяти компьютера целых чисел без знака.
Проверка Д/З.
Анализ проверочной работы предыдущего урока.
Кодирование вещественных чисел
Недостатком представления чисел в формате с фиксированной запятой является конечный диапазон представления величин, недостаточный для решения математических, физических, экономических и других задач, в которых используются как очень малые, так и очень большие числа. Поэтому для преставления вещественных чисел (конечных и бесконечных десятичных дробей) используется другой формат — формат с плавающей точкой (запятой).
Формат чисел с плавающей точкой основывается на экспоненциальной форме записи чисел, в которой любое число может быть представлено в следующей форме:
А = m • qn, где:
m—мантисса числа, которая для однозначности представления чисел с плавающей точкой должна иметь нормализованную форму, а именно представлять собой правильную дробь с цифрой после запятой, отличной от нуля;
q — основание системы счисления;
n — порядок числа.
Примеры нормализованного представления.
3,1415926 = 0, 31415926 * 101;
1000=0,1 * 104;
0,123456789 = 0,123456789 * 10;
0,00001078 = 0,1078 * 8-4; (порядок записан в 10-й системе)
1000,00012 = 0, 100000012 * 2100(порядок 1002=410).
0,0000112=0,112*2-100 (порядок -1002=-410)
Так как число ноль не может быть записано в нормализованной форме в том виде, в каком она была определена, то считаем, что нормализованная запись нуля в 10-й системе будет такой:
0 = 0,0 * 10.
Число в форме с плавающей точкой занимает в памяти компьютера четыре (число обычной точности) байта или восемь (число двойной точности) байта. Для записи чисел в разрядной сетке выделяются разряды для знака, для порядка и для мантиссы.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Знак порядка | Порядок | Знак мантиссы | Мантисса |
Здесь порядок n-разрядного нормализованного числа задается в так называемой смещенной форме: если для задания порядка выделено к разрядов, то к истинному значению порядка, представленного в дополнительном коде, прибавляют смещение, равное (2 к-1 — 1). Например, порядок, принимающий значения в диапазоне от —128 до +127, представляется смещенным порядком, значения которого меняются от 0 до 255. Использование смещенной формы позволяет производить операции над порядками как над беззнаковыми числами, что упрощает операции сравнения, сложения и вычитания порядков, а также операцию сравнения самих нормализованных чисел.
Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, представимого в машине при заданном формате.
Стандартные форматы представления вещественных чисел:
Одинарный — 32-разрядное нормализованное число со знаком, 8-разрядным смещенным порядком и 24-разрядной мантиссой (старший бит мантиссы, всегда равный 1, не хранится в памяти, и размер поля, выделенного для хранения мантиссы, составляет только 23 разряда).
Двойной — 64-разрядное нормализованное число со знаком, 11-разрядным смещенным порядком и 53-разрядной мантиссой (старший бит мантиссы не хранится, и размер поля, выделенного для хранения мантиссы, составляет 52 разряда).
3) Расширенный — 80-разрядное число со знаком, 15-разрядным смещенным порядком и 64-разрядной мантиссой. Позволяет хранить ненормализованные числа.
Следует отметить, что вещественный формат с m-разрядной мантиссой позволяет абсолютно точно представлять m-разрядные целые числа, т. е. любое двоичное целое число, содержащее не более т разрядов, может быть без искажений преобразовано в вещественный формат.
Заполним таблицу интервалов чисел различных форматов (вместе с учащимися):
Количество разрядов (n), отводимое для хранения числа | Количество разрядов, отводимое под порядок | Количество разрядов, отводимое под мантиссу | Точность вычислений (количество значащих цифр) | Максимальное значение порядка | Максимальное число |
4 байта (32 разряда) | 8 разрядов | 24 разряда | 223 – 1 ≈ 107 (7 разрядов) | 011111112= =12710 | 2127= 1,701411*1038 |
8 байтов (64 разряда) | 11 разрядов | 53 разряда | 252-1 ≈ 1015,6 (15 или 16 разрядов) | 011111111112= 102310 | 21023= =8,98846567431157 * 10 307 |
Пояснение: количество разрядов, отведенных для хранения порядка числа, определяет диапазон изменения чисел, а количество значащих цифр определяется количеством разрядов, отводимое для хранения мантиссы.
Диапазон вещественных чисел значительно шире диапазона целых чисел. Положительные и отрицательные числа расположены симметрично относительно нуля. Следовательно, максимальное и минимальное числа равны между собой по модулю.
Наименьшее по абсолютной величине число равно нулю. Наибольшее по абсолютной величине число в форме с плавающей точкой — это число с самой большой мантиссой и самым большим порядком.
Для 4-х байтового машинного слова таким числом будет:
0,111111111111111111111111 * 102 1111111
После перевода в десятичную систему счисления получим: (1 — 2-24) * 263 ≈ 1019.
Множество вещественных чисел, представимых в памяти компьютера в форме с плавающей точкой, является ограниченным и дискретным. Количество вещественных чисел, точно представимых в памяти компьютера, вычисляется по формуле: N = 2t * (U — L + 1) + 1.
Здесь t — количество двоичных разрядов мантиссы; U — максимальное значение математического порядка; L — минимальное значение порядка. Для рассмотренного нами варианта (t = 24, U = 63, L = -64) получается: N = 2 146 683 548.
Пример 1. Записать внутреннее представление числа 250,187510 в форме с плавающей точкой.
1. Переведем число в 2-СС с 24 значащими цифрами:
250,187510 = 11111010, 00110000000000002
2. Запишем в форме нормализованного двоичного числа с плавающей точкой:
0,1111101000110000000000002 * 102 1000 (210 = 102, 810 = 10002)
3. Вычислим машинный порядок в 2-СС: Mp2 = n2 + 10000002 (в 10-CC: Mp10 = n10 + 6410)
Mp2 = 1000 + 1000000 = 1001000
4. Запишем представление числа в 4-х байтовой ячейке памяти с учетом знака числа:
Знак и Мантисса | |||||
1001000 | 1111101 | 00011000 | 00000000 |
Шестнадцатеричная форма: 487D1800
Алгоритм представления числа с плавающей запятой
(формулируют учащиеся по разобранному примеру).
Перевести число из p-ричной системы счисления в двоичную;
представить двоичное число в нормализованной экспоненциальной форме;
рассчитать смещённый порядок числа;
разместить знак, порядок и мантиссу в соответствующие разряды сетки.
Пример для самостоятельного выполнения с последующей проверкой у доски.
А) -1101,00112 .
Б) 123,12510
Ответ:
А) 01000100 11101001 10000000 00000000 (44E9800016)
Б) 01000111 1111011 00100000 00000000 (477B200016)
Итоги урока, выставление оценок.
Д/З: записать внутреннее представление вещественных числа в 8-байтовой разрядной сетке и их 16-ричную форму: 0,000111012; — 185,7510 .
Тулаева Е.А., учитель информатики высшей категории