213.33K
Category: informaticsinformatics

Кодирование вещественных чисел

1.

Михаилиди И.М.
КОДИРОВАНИЕ ВЕЩЕСТВЕННЫХ
ЧИСЕЛ

2.

КОДИРОВАНИЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ
Вещественные числа:
Вещественные числа хранятся в памяти компьютера и
обрабатываются процессором в формате числа с фиксированной
точкой или числа с плавающей точкой.
Число с плавающей точкой А представляется
в виде А = m qn, где:
m — мантисса числа;
q - основание системы счисления;
n - порядок числа (экспонента)
.
Пример: 12.345 = 0.0012345 x 104
0.0012345 – мантисса
10 – основание системы счисления
4 – порядок

3.

КОДИРОВАНИЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ
Нормальная форма вещественного числа
Мантисса числа в нормальной форме должна
удовлетворять условию:
0.1 <= m < 1 (в соответствующей системе счисления)
Пример: 12.345 = 0. 12345 x 102
Так как целая часть мантиссы всегда равна нулю, то в
памяти компьютера мантиссу можно хранить как целое
число, содержащее только цифры дробной части:
12345

4.

КОДИРОВАНИЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ
Нормализованное представление вещественного числа
с плавающей точкой.
В двоичной системе счисления мантисса числа в нормальной
форме всегда будет начинаться с единицы.
0.1 <= m < 1
Пример: 0.1101
Для повышения точности числа (отведения большего числа
знаков под мантиссу), введем определение нормализованного
представления вещественного числа наложением на
мантиссу ограничения: 1 <= m < 10
Тогда в двоичной системе счисления целая чась мантиссы
будет всегда равна единице, которую можно не хранить.
В этом случае мантисса в нашем примере будет
представлена как 1.101, и к дробной части числа можно
добавить еще один разряд, что увеличит точность вычислений

5.

КОДИРОВАНИЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ
Стандарт IEEE 754
Для записи в памяти компьютера вещественного числа с
плавающей точкой с одинарной точностью используются 32
разряда (бита) (тип Binary32, FLOAT, SINGLE)
Запись числа с одинарной точностью (тип Binary32, FLOAT,
SINGLE)
Для того чтобы избавиться от отрицательных порядков к
порядку прибавляют число 127 (111 1111 в двоичном виде).
Полученное число называется смещенным порядком.
Если порядок был отрицательным, то он вычитается из 127.

6.

КОДИРОВАНИЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ
Стандарт IEEE 754
Для записи в памяти компьютера вещественного числа с
плавающей точкой с двойной точностью используются 64
разряда (бита) (тип Binary64, DOUBLE)
Запись числа с двойной точностью (тип Binary32, FLOAT,
SINGLE)
Для того чтобы избавится от отрицательных порядков к
порядку прибавляют число 1023 (111111111 в двоичном виде).
Полученное число называется смещенным порядком.
Если порядок был отрицательным, то он вычитается из 1023.

7.

КОДИРОВАНИЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ
ПРИМЕР 2. Представить число 206.116 в формате с
плавающей точкой c точностью до 10-го знака.
Перевод целой части по ранее описанным алгоритмам
дает 20610=110011102 ; дробную часть умножаем на
основание 2, занося целые части произведения в разряды
после запятой искомого дробного двоичного числа:
0.116 • 2 = 0.232
0.712 • 2 = 1.424
0.232 • 2 = 0.464
0.424 • 2 = 0.848
0.464 • 2 = 0.928
0.848 • 2 = 1.696
0.928 • 2 = 1.856
0.696 • 2 = 1.392
0.856 • 2 = 1.712
0.392 • 2 = 0.784
0.784 • 2 = 1.568
Ответ: 206.11610=11001110.00011101112

8.

КОДИРОВАНИЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ
Представим число в нормализованном виде:
206.11610=11001110,00011101102=1.100111000011101112 . 27
Мантисса: 1.100111000011101112
Порядок: 710 = 1112
Смещенный порядок: 710+ 12710 = 1112 + 11111112 =100001102

9.

КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что представляет собой нормальная форма действительных
чисел?
2. Что представляет собой нормализованная форма
действительных чисел?
3. Сколько разрядов отводится для хранения вещественного
числа с плавающей точкой одинарной точности в формате
IEEE 754?
4. Сколько разрядов отводится для хранения вещественного
числа с плавающей точкой двойной точности в формате IEEE
754?
5. Как кодируются вещественные числа для хранения и обработки
в компьютере?
6. Как по коду числа быстро определить положительное число
или отрицательное?
7. Как по коду числа быстро определить положительный его
порядок или отрицательный?
English     Русский Rules