- •Кодирование
- •Принципиальное отличие между
- ••Существует два способа представления вещественных чисел: с фиксированной и с плавающей запятой.
- ••При представлении вещественных чисел в форме с фиксированной точкой положение десятичной точки в
- ••В форме с плавающей точкой вещественное число х представляется в виде
- •Количество позиций, отводимых для мантиссы, определяет точность представления чисел, а количество позиций, отводимых
- •Примеры:
- •Персональный компьютер IBM PC с математическим сопроцессором позволяет работать со следующими действительными типами
- •Алгоритм для получения
- •Теперь мы можем записать внутреннее представление числа 25,324 в форме с плавающей точкой.
- ••Пример. Запишем код числа –312,3125.
Кодирование
вещественных
(действительных)
чисел
Принципиальное отличие между
вещественными и целыми числами
•Целые числа дискретны, и отсюда (если не брать во внимание эффект переполнения) каждому целому числу соответствует уникальный двоичный код; вещественные числа, напротив, непрерывны, а значит, не могут быть полностью корректно перенесены в дискретную по своей природе вычислительную машину. Это означает, что некоторые вещественные числа, незначительно отличающиеся друг от друга, могут иметь одинаковый код.
•Существует два способа представления вещественных чисел: с фиксированной и с плавающей запятой.
•При представлении вещественных чисел в форме с фиксированной точкой положение десятичной точки в машинном слове фиксировано
•Чаще всего точка фиксируется перед первым разрядом числа
•В форме с плавающей точкой вещественное число х представляется в виде
A = (± M) x Q ± P
•где |M|<1 и называется мантиссой, p – целое
число, называемое порядком
Количество позиций, отводимых для мантиссы, определяет точность представления чисел, а количество позиций, отводимых для порядка – диапазон представления чисел.
Обычно мантисса записывается в нормализованном виде, то есть так, чтобы отсутствовали незначащие нули в старших разрядах:
0.0011101 ненормализованное представление,
0.1110100 нормализованное представление.
Примеры:
Для десятичной системы это выглядит очень привычно, например: 3 сантиметра - есть 3 х 10 -2 метра, заряд электрона равен -1,6 x 10 - 19 Кл, а скорость света в вакууме составляет 3 x 10
8 м/сек.
Некоторое неудобство вносит тот факт, что представление числа с плавающей запятой не является единственным: 3 х 10 -2
= 30 х 10 -3 = 0,3 х 10 -1 = 0,03 х 10 0 = ...
A = (± M) x Q ± P где M называют
мантиссой, а показатель степени
P - порядком числа.
Персональный компьютер IBM PC с математическим сопроцессором позволяет работать со следующими действительными типами (диапазон значений указан по абсолютной величине):
Тип |
Диапазон |
Мант |
Байты |
|
|
|
|
исса |
|
Real |
2,9 10–39..1,7 |
1038 |
11–12 |
6 |
Single |
1,5 10–45..3,4 |
1038 |
7–8 |
4 |
Double |
5,0 10-324..1,7 10308 |
15–16 |
8 |
|
Extende |
3,4 10 -4932..1,1 |
104932 |
19–20 |
10 |
d |
|
|
|
|
Алгоритм для получения
представления действительного числа в памяти ЭВМ:
1)перевести модуль данного числа в двоичную систему счисления;
2)нормализовать двоичное число, т.е. записать в виде M 2p, где M — мантисса (ее целая часть равна 1(2)) и p — порядок, записанный в десятичной системе счисления;
3)прибавить к порядку смещение и перевести смещенный порядок в двоичную систему счисления;
4)учитывая знак заданного числа (0 — положительное; 1 — отрицательное), выписать его представление в памяти ЭВМ.
Теперь мы можем записать внутреннее представление числа 25,324 в форме с плавающей точкой.
1)Переведем его в двоичную систему счисления с 24 значащими цифрами.
•25,32410= 11001,01010010111100011012
2)Запишем в форме нормализованного двоичного числа с плавающей точкой:
•0,110010101001011110001101*10101
Здесь мантисса, основание системы счисления (210=102) и порядок
(510=1012)записаны в двоичной системе.
3) Вычислим машинный порядок. Мр2 = 101 + 100 0000 = 100 0101.
4) Запишем представление числа в ячейке памяти.
31 |
|
|
порядок |
|
|
|
|
|
|
|
|
|
|
|
|
|
мантисса |
|
|
|
|
|
|
|
|
|
0 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
0 |
|
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
|
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак числа |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|