Внутреннее представление вещественных чисел

advertisement
ФОРМАТ ЗАПИСИ
ВЕЩЕСТВЕННЫХ ЧИСЕЛ С
ФИКСИРОВАННОЙ ЗАПЯТОЙ
вещественные числа в нашем мире
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 в форме с плавающей точкой.
Download