ФОРМАТ ЗАПИСИ ВЕЩЕСТВЕННЫХ ЧИСЕЛ С ФИКСИРОВАННОЙ ЗАПЯТОЙ вещественные числа в нашем мире 1. МНОЖЕСТВО ЦЕЛЫХ ЧИСЕЛ БЕСКОНЕЧНО 2. МНОЖЕСТВО ВЕЩЕСТВЕННЫХ ЧИСЕЛ БЕСКОНЕЧНО Вещественные числа в компьютере ГРАНИЦЫ МНОЖЕСТВА ВЕЩЕСТВЕННЫХ ЧИСЕЛ ЗАВИСЯТ ОТ РАЗМЕРА ВЫДЕЛЯЕМОЙ ЯЧЕЙКИ ПАМЯТИ ПОД ЧИСЛО, А ТАКЖЕ ОТ ФОРМАТА: СО ЗНАКОМ ИЛИ БЕЗ ЗНАКА. Вещественные числа в компьютере – дискретное, ограниченное и конечное множество. Шаг последовательности ДЛЯ ВЕЩЕСТВЕННЫХ ЧИСЕЛ ВЕЛИЧИНА ШАГА ПОСЛЕДОВАТЕЛЬНОСТИ МЕЖДУ СОСЕДНИМИ ВЕЩЕСТВЕННЫМИ ЧИСЛАМИ РАЗЛИЧНА! Чем больше числа, тем больше величина шага последовательности. Рассмотрим 10-разрядный калькулятор Число № 1 Следующее по порядку число Величина шага (min) Число № 2 Следующее по порядку число 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 0. 0 1 9 1 9 0 0 0 0 0 0 0 1 7 7 6 5. 6 5. 5 6 4 5 4 5 6 4 5 5 1 5 5 0. 0 0 0 0 4 6 4 6 5 7. 4 6 4 6 5 7. 0. 1 0. 0. Величина шага Число № 3 Следующее по порядку число Величина шага (max) 5 5 4 4 7 8 ФОРМАТ ЗАПИСИ ВЕЩЕСТВЕННЫХ ЧИСЕЛ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ Представление чисел в формате с плавающей запятой Базируется на экспоненциальной форме записи числа: A = m *qn m - мантисса числа q – основание СС n – порядок числа Для единообразия представления чисел используется нормализованная форма: 1/q <= |m| <1 (правильная дробь и после запятой цифра, отличная от нуля.) Пример. Преобразуйте число 555,55, записанное в естественной форме, в экспоненциальную форму с нормализованной мантиссой: 555,55 =0,55555 * 103 Нормализованная мантисса: 0,55555 Порядок: n = 3 Пример Число в форме с плавающей точкой занимает в памяти компьютера 4 байта (с обычной точностью) или 8 байт (с повышенной точностью). При записи числа с плавающей точкой выделяются разряды для хранения: 1. знака мантиссы, 2. знака порядка, 3. порядка, 4. мантиссы. Преобразуйте десятичное число 888,888, записанное в естественной форме, в экспоненциальную форму с нормализованной мантиссой. 888,888 = 0,888888 × 103 Нормализованная мантисса mА = 0,888888, порядок P=3. задание Преобразуйте десятичные числа: 100,1234567 0,0000012345 5 0,5 записанные в естественной форме, в экспоненциальную форму с нормализованной мантиссой. Представление чисел в формате с плавающей запятой 1-й байт 2-й байт ± маш. порядок 3-й байт М А Н Т И 4-й байт С С А • в старшем бите 1-го байта хранится знак числа 0 – обозначает плюс, 1 – минус; • 7 бит содержат машинный порядок; • в следующих трех байтах, хранятся значащиеся цифры мантиссы (24 разряда). Формула для вычисления количества вещественных чисел, точно представимых в памяти компьютера N = 2t * (U - L + 1) + 1. Здесь: t — количество двоичных разрядов мантиссы; U — максимальное значение математического порядка; L — минимальное значение порядка. Для рассмотренного нами варианта (t = 24, U = 63, L = - 64) Получается количество вещественных чисел, представимых в памяти компьютера с обычной точностью N = 2 146 683 548. Пример 1 . Записать внутреннее представление числа 250,1875 в форме с плавающей точкой. Решение 1. Переведем в двоичную СС: 250,187510=11111010, 00110000000000002 2. Запишем в форме нормализованного двоичного числа: 0, 11111010 0011000000000000 * 10210002 (мантисса, основание СС 210=102 и порядок 810=10002) 3. Вычислим машинный порядок в двоичной СС: 3. Мр2 = р2 + 100 00002 Мp2 = 1000 +100 0000 = 100 1000 Запишем число в 4-х байтовой ячейке: 0 1001000 11111010 00110000 00000000 Шестнадцатеричная форма 48FA3000 в формате с плавающей точкой в 4-х байтовой ячейке. ПОЛУЧИТЬ 16-РИЧНУЮ ФОРМУ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ ОТРИЦАТЕЛЬНОГО ЧИСЛА -123,125 Решение: 1. Переведем модуль числа в двоичную систему счисления с 24 значащими цифрами. 12310 =11110112 0,12510 =0, 0012 123,12510 =1111011, 001000000000000002 (4 байта-32 разряда, 1 байт на знак и порядок, 3 байта или 24 бита на мантиссу) 2. Запишем в форме нормализованного двоичного числа с плавающей запятой: 0, 111101100100000000000000 х 102 111 (1112 =710 ) 3. Вычислим машинный порядок в двоичной системе счисления. Мр2 = р2 + 100 00002 = 1112 + 100 00002 = 10001112 4. Запишем представление числа в 4-х байтовой ячейке памяти с учетом знака числа: 1 1000111 1111 0110 0100 0000 0000 0000 Ответ: - 47F64000 задание 1. Записать внутреннее представление числа 175,25 в форме с плавающей точкой с обычной точностью (в 4байтовой ячейке памяти) 2. Записать внутреннее представление числа (- 175,25) в форме с плавающей точкой. 3. Записать внутреннее представление числа 0,17525 в форме с плавающей точкой. 4. Записать внутреннее представление числа 0,0017525 в форме с плавающей точкой.