Кодирование вещественных чисел Составила Соколова Е.В. Учитель информатики МБОУ СОШ № 1 г.Зубцов Тверская обл.
Cлайд 2
Для представления вещественных чисел (конечных и бесконечных десятичных дробей) используют формат с плавающей точкой (запятой). Форма с плавающей точкой использует представление вещественного числа R в виде произведения мантиссы m на основание системы счисления р в некоторой целой степени n, которую называют порядком: R = m * рn m – мантисса, n – порядок, p – основание системы Кодирование вещественных чисел
Cлайд 3
Например, число 35,324 можно записать в таком виде: 0.35324х102 Здесь m=0.35324 — мантисса, n=2 — порядок Порядок указывает, на какое количество позиций и в каком направлении должна «переплыть», т.е. сместиться десятичная точка в мантиссе. Отсюда название «плавающая точка». Однако справедливы и следующие равенства: 35,324 = 3,5324*101 = 0,0035324*104 = 3532,4*102 и т.п. Кодирование вещественных чисел
Cлайд 4
Получается, что представление числа в форме с плавающей точкой неоднозначно? Чтобы не было неоднозначности, в ЭВМ используют нормализованное представление числа в форме с плавающей точкой Кодирование вещественных чисел
Cлайд 5
Мантисса в нормализованном представлении должна удовлетворять условию: 0,1p ≤ m < 1p Иначе говоря, мантисса меньше единицы и первая значащая цифра — не ноль. Значит для рассмотренного числа нормализованным представлением будет: 35,324=0.35324 * 102 Кодирование вещественных чисел
Cлайд 6
Машинный порядок Пусть в памяти компьютера вещественное число представляется в форме с плавающей точкой в двоичной системе счисления (р=2) и занимает ячейку размером 4 байта. В ячейке должна содержаться следующая информация о числе: знак числа, порядок и значащие цифры мантиссы. Вот как эта информация располагается в ячейке: Кодирование вещественных чисел ± 1 б а й т 2 б м а й а т н 3 т б а и й т с с а 4 б а й т
Cлайд 7
Машинный порядок В старшем бите 1-го байта хранится знак числа. В этом разряде 0 обозначает плюс, 1 — минус Оставшиеся 7 бит первого байта содержат машинный порядок В следующих трех байтах хранятся значащие цифры мантиссы Кодирование вещественных чисел ± 1 б а й т 2 б м а й а т н 3 т б а и й т с с а 4 б а й т
Cлайд 8
Что такое машинный порядок? В семи двоичных разрядах помещаются двоичные числа в диапазоне от 0000000 до 1111111. В десятичной системе это соответствует диапазону от 0 до 127. Всего 128 значений. Знак порядка в ячейке не хранится. Но порядок, очевидно, может быть как положительным так и отрицательным. Разумно эти 128 значений разделить поровну между положительными и отрицательными значениями порядка. Кодирование вещественных чисел
Cлайд 9
В таком случае между машинным порядком и истинным (назовем его математическим) устанавливается следующее соответствие: Если обозначить машинный порядок Мр, а математический — р, то связь между ними выразится такой формулой: Мр = р + 64 Кодирование вещественных чисел Машинный порядок 0 1 2 3 ... 64 65 ... 125 126 127 Математический порядок -64 -63 -62 -61 ... 0 1 ... 61 62 63
Cлайд 10
Итак, машинный порядок смещён относительно математического на 64 единицы и имеет только положительные значения. При выполнении вычислений с плавающей точкой процессор это смещение учитывает В двоичной системе счисления смещение: Мр2 = р2+100 00002 Кодирование вещественных чисел
Cлайд 11
Теперь мы можем записать внутреннее представление числа 35,324 в форме с плавающей точкой 1) Переведем его в двоичную систему счисления с 24 значащими цифрами 35,324= 100011,0101001011110001102 Кодирование вещественных чисел
Cлайд 12
2) Запишем в форме нормализованного двоичного числа с плавающей точкой: 0,100011010100101111000110*10110 Здесь мантисса, основание системы счисления (210=102) и порядок (610=1102)записаны в двоичной системе Кодирование вещественных чисел
Cлайд 13
3) Вычислим машинный порядок Мр2 = 110 + 100 0000 = 100 0110 4) Запишем представление числа в ячейке памяти порядок мантисса Знак числа Кодирование вещественных чисел
Cлайд 14
Число в форме с плавающей точкой занимает в памяти компьютера 4 байта (число обычной точности) или 8 байт (число двойной точности). Мы рассмотрели пример представления числа 35,324 обычной точности Кодирование вещественных чисел
Cлайд 15
Для того, чтобы получить внутреннее представление отрицательного числа -35,324, достаточно в полученном выше коде заменить в разряде знака числа 0 на 1 Кодирование вещественных чисел
Cлайд 16
Представьте двоичное число -100,12 в четырёхбайтовом формате. Представьте число сначала в форме с плавающей запятой. Задание: Кодирование вещественных чисел
Cлайд 17
-100,12= -0,1001*211 Мантисса -0,1001 Порядок 11 Машинный порядок 11+100 0000=1000011 Решение: Кодирование вещественных чисел
Cлайд 18
Задания для самостоятельного выполнения Сравните числа: а) 318,4785∙109 и 3,184785∙1011 б) 218,4785∙10-3 и 1847,85∙10-4 2. Запишите числа в естественной форме: а) 0,1100000∙2100 б) 0,1001111∙2111 Кодирование вещественных чисел