Реферат Курсовая Конспект
Вещественные типы - раздел Образование, ПРОСТЫЕ СТРУКТУРЫ ДАННЫХ В Отличии От Порядковых Типов (Все Целые, Символьный, Логи- Ческий),...
|
В отличии от порядковых типов (все целые, символьный, логи-
ческий), значения которых всегда сопоставляются с рядом целых чи-
сел и, следовательно, представляются в памяти машины абсолютно
точно, значение вещественных типов определяет число лишь с неко-
торой конечной точностью, зависящей от внутреннего формата ве-
щественного числа.
ПРЕДСТАВЛЕНИЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ В ПАМЯТИ В некоторых об-
ластях вычислений требуются очень большие или весьма малые дейс-
твительные числа. Для получения большей точности применяют запись
чисел с плавающей точкой. Запись числа в формате с плавающей точ-
кой является весьма эффективным средством представления очень
больших и весьма малых вещественных чисел при условии, что они
содержат ограниченное число значащих цифр, и, следовательно, не
все вещественные числа могут быть представлены в памяти. Обычно
число используемых при вычислениях значащих цифр таково, что для
большинства задач ошибки округления пренебрежимо малы.
Формат для представления чисел с плавающей точкой содержит
одно или два поля фиксированной длины для знаков. Количество по-
зиций для значащих цифр различно в разных ЭВМ, но существует, тем
не менее, общий формат, приведенный на рисунке 2.5 а). В соот-
ветствии с этой записью формат вещественного числа содержит в об-
щем случае поля мантиссы, порядка и знаков мантиссы и порядка.
┌───────────┬─────────┬──────────────┬──────────┐
│ знак числа│ порядок │ знак порядка │ мантисса │
└───────────┴─────────┴──────────────┴──────────┘
а) с порядком
┌────────────┬────────────────┬──────────┐
│ знак числа │ характеристика │ мантисса │
└────────────┴────────────────┴──────────┘
б) с характеристикой
Рис. 2.5. Формат представления вещественных чисел
Однако, чаще вместо порядка используется характеристика, по-
лучающаяся прибавлением к порядку такого смещения, чтобы характе-
ристика была всегда положительный. При этом имеет место формат
представления вещественных чисел такой, как на рис 2.5 б).
Введение характеристики избавляет от необходимости выделять
один бит для знака порядка и упрощает выполнение операций сравне-
ния (<,>,<=,>=) и арифметических операций над вещественными чис-
лами. Так, при сложении или вычитании чисел с плавающей точкой
для того, чтобы выровнять операнды, требуется сдвиг влево или
вправо мантиссы числа. Сдвиг можно осуществить с помощью единс-
твенного счетчика, в который сначала заносится положительное чис-
ло, уменьшающееся затем до тех пор, пока не будет выполнено тре-
буемое число сдвигов.
Таким образом, для представления вещественных чисел в памяти
ЭВМ порядок p вещественного числа представляется в виде характе-
ристики путем добавления смещения (старшего бита порядка):
Х = 2^(n-1) + k + p, (2.1)
где n - число бит, отведенных для характеристики,
p - порядок числа,
k - поправочный коэффициент фирмы IBM, равный +1 для real
и -1 для форматов single, double, extended.
Формулы для вычисления характеристики и количество бит, не-
обходимых для ее хранения, приведены в таблице 2.2.
Таблица 2.2
┌────────────┬─────────────────────────┬────────────────────┐
│ Тип │ Характеристика │Кол-во бит на хар-ку│
├────────────┼─────────────────────────┼────────────────────┤
│ real │ x = 2^7 + p + 1 │ 8 │
│ single │ x = 2^7 + p - 1 │ 8 │
│ double │ x = 2^10 + p - 1 │ 11 │
│ extended │ x = 2^14 + p - 1 │ 15 │
└────────────┴─────────────────────────┴────────────────────┘
Следующим компонентом представляемого в машине числа с пла-
вающей точкой является мантисса. Для увеличения количества знача-
щих цифр в представлении числа и исключения переполнения при ум-
ножении мантиссу обычно подвергают нормализации. Нормализация оз-
начает, что мантисса (назовем ее F), кроме случая, когда F=0,
должна находиться в интервале
R^(-1) <= F < 1.
Для двоичной системы счисления R=2. Тогда в связи с тем, что
2^(-1) <= F < 1, ненулевая мантисса любого хранимого числа с пла-
вающей точкой должна начинаться с двоичной единицы. В этом и за-
ключается одно из достоинств двоичной формы представления числа
с плавающей точкой. Поскольку процесс нормализации создает дробь,
первый бит которой равен 1, в структуре некоторых машин эта еди-
ница учитывается, однако не записывается в мантиссу. Эту единицу
часто называют скрытой единицей, а получающийся дополнительный
бит используют для увеличения точности представления чисел или их
диапазона.
Приведенный метод нормализации является классическим мето-
дом, при котором результат нормализации представляется в виде
правильной дроби, т.е. с единицей после точки и нулем в целой
части числа. Но нормализацию мантиссы можно выполнить по разному.
В IBM PC нормализованная мантисса содержит свой старший бит
слева от точки. Иными словами нормализованная мантисса в IBM PC
принадлежит интервалу 1 <= F < 2. В памяти машины для данных типа
real, single, double этот бит не хранится, т.е. является "скры-
тым" и используется для увеличения порядка в форматах single или
для хранения знака в формате real. Для положительных и отрица-
тельных чисел нормализованная мантисса в памяти представлена в
прямом коде.
Первый, старший, бит в представлении чисел в формате с пла-
вающей точкой является знаковым, и по принятому соглашению нуль
обозначает положительное число, а единица - отрицательное.
Число бит для хранения мантиссы и порядка зависит от типа
вещественного числа. Суммарное количество байтов, диапазоны до-
пустимых значений чисел вещественных типов, а также количество
значащих цифр после запятой в представлении чисел приведены в
таблице 2.3.
Таблица 2.3
┌──────────┬──────────────────────────────┬──────────┬──────────┐
│ Тип │ Диапазон значений │ Значащие │ Размер в │
│ │ │ цифры │ байтах │
├──────────┼──────────────────────────────┼──────────┼──────────┤
│ real │ 2.9*10^(-39)...1.7*10^38 │ 11-12 │ 6 │
│ single │ 1.4*10^(-45)...3.4*10^38 │ 7-8 │ 4 │
│ double │ 4.9*10^(-324)...1.8*10^308 │ 15-16 │ 8 │
│ extended │ 3.1*10^(-4944)...1.2*10^4932 │ 19-20 │ 10 │
└──────────┴──────────────────────────────┴──────────┴──────────┘
АЛГОРИТМ ФОРМИРОВАНИЯ МАШИННОГО ПРЕДСТАВЛЕНИЯ ВЕЩЕСТВЕННОГО
ЧИСЛА В ПАМЯТИ ЭВМ.
Алгоритм формирования состоит из следующих пунктов:
1). Число представляется в двоичном коде.
2). Двоичное число нормализуется. При этом для чисел, больших
единицы, плавающая точка переносится влево, определяя положитель-
ный порядок. Для чисел, меньших единицы, точка переносится впра-
во, определяя отрицательный порядок.
3). По формуле из таблицы 2.2 с учетом типа вещественного числа
определяется характеристика.
4). В отведенное в памяти поле в соответствии с типом числа запи-
сываются мантисса, характеристика и знак числа. При этом необхо-
димо отметить следующее:
- для чисел типа real характеристика хранится в младшем байте па-
мяти, для чисел типа single, double, extended - в старших байтах;
- знак числа находится всегда в старшем бите старшего байта;
- мантисса всегда хранится в прямом коде;
- целая часть мантиссы (для нормализованного числа всегда 1) для
чисел типа real, single, double не хранится (является скрытой). В
числах типа extended все разряды мантиссы хранятся в памяти ЭВМ.
МАШИННОЕ ПРЕДСТАВЛЕНИЕ ДАННЫХ ТИПА REAL. Формат машинного
представления данных типа REAL следующий:
мл. байт ст. байт
а: 7 0 15 8 23 16 31 24 39 32 47 40
x....x м....м м....м м....м м....м sм...м
б: 7 0 -32 -39 -24 -31 -16 -23 -8 -15 -1 -7
где а - номера разрядов памяти,
б - показатели степеней разрядов характеристики и мантиссы,
s - знаковый разряд числа,
м - нормализованная мантисса,
х - характеристика числа.
Например: 1). Десятичное число 15.375;
в двоичной системе счисления 1111.011;
результат нормализации 1.111011*2^3; р=3.
Учитывая отбрасывание неявной единицы и сдвиг порядка, полу-
чаем: s=0; х=2^7+1+3=2^7+2^2=132;
в двоичной системе счисления х=10000100; м=1110110...0;
машинное представление числа:
10000100 00000000 00000000 00000000 00000000 01110110
2). Десятичное число -0.5;
аналогичные выкладки дают: нормализованную мантиссу: 1.00...0;
машинное представление числа:
10000000 00000000 00000000 00000000 00000000 10000000
3). Десятичное число -25.75;
аналогично: нормализованная мантисса: 1.10011100...0;
машинное представление числа:
10000101 00000000 00000000 00000000 00000000 11001110
4). Число 0.0;
Машинное представление числа:
00000000 00000000 00000000 00000000 00000000 00000000
5). Числа верхней и нижней границ положительного диапазона
~1.7*10^38 -
11111111 11111111 11111111 11111111 11111111 01111111
~2.9*10^(-35) -
00000001 00000000 00000000 00000000 00000000 00000000
МАШИННОЕ ПРЕДСТАВЛЕНИЕ ДАННЫХ ТИПА SINGLE. Формат машинного
представления данных типа SINGLE следующий:
мл. байт ст. байт
7 0 15 8 23 22 16 31 30 24 - номера разрядов памяти
м....м м....м х м...м s х...х
-16 -23 -8 -15 0 -1 -7 7 1 - показатели степеней разрядов
мантиссы и характеристики
где s - знаковый разряд,
х - характеристика числа,
м - нормализованная мантисса.
Например: 1). Число -15.375;
в двоичной системе счисления -1111.011;
нормализованное двоичное число -1.111011*2^3; р=3.
Учитывая отбрасывание неявной единицы и сдвиг порядка, полу-
чаем: s=1; х=2^7-1+3=2^7+2^1=130;
в двоичной системе счисления х=10000010; м=1110110...0;
машинное представление числа в формате SINGLE:
00000000 00000000 01110110 11000001
2). Число -0.1875;
в двоичной системе счисления -0.0011;
нормализованное двоичное число -1.1*2^(-3); р=-3.
Учитывая отбрасывание неявной единицы и сдвиг порядка, полу-
чаем: s=1; х=2^7-1-3=2^7-2^2;
в двоичной системе счисления х=01111100; м=100...0;
машинное представление числа в формате SINGLE:
00000000 00000000 01000000 10111110
3). Десятичное число 4.5;
аналогичные выкладки дают нормализованную мантиссу: 1.00100...0;
машинное представление числа:
00000000 00000000 10010000 01000000
4). Значения верхней и нижней границ чисел отрицательного
диапазона
~-3.4*10^38 - 11111111 11111111 01111111 11111111
~-.4*10^(-45) - 00000001 00000000 00000000 10000000
МАШИННОЕ ПРЕДСТАВЛЕНИЕ ДАННЫХ ТИПА DOUBLE. 1 0Формат машинного
представления данных типа DOUBLE следующий:
мл.байт ст.байт
7 0 15 8 23 16 31 24 39 32 47 40 55 52 51 48 63 56
м...м м...м м...м м...м м...м м...м х..х м...м s x..x
-44 -50 -37 -43 -29 -36 -21 -28 -13 -20 -5 -12 3 0 -1 -4 10 4
где верхняя строка цифр от 0 до 63 - номера разрядов памяти;
нижняя строка цифр от -50 до -1 - показатели степеней разрядов
мантиссы; от 0 до 10 - разрядов характеристики;
s - знаковый разряд числа;
м - нормализованная мантисса;
х - характеристика числа (x=2^10-1+p, где p - порядок норма-
лизованного числа).
Например, 1). Число 15.375;
в двоичной системе счисления 1111.011;
результат нормализации 1.111011*2^3; р=3.
Учитывая отбрасывание скрытой единицы и сдвиг порядка, полу-
чаем: s=0; x=2^10-1+3=2^10+2^1=1026;
в двоичной системе счисления х=10000000010; m=1110110...0;
машинное представление числа в формате DOUBLE:
0 00000000 00000000 00000000 00000000 31
32 00000000 11000000 00101110 01000000 63
2). Десятичное число 0.0375;
в двоичной системе счисления 0.011;
результат нормализации 1.1*2^(-2); р=-2.
Учитывая отбрасывание скрытой единицы и сдвиг порядка, полу-
чаем: s=0; x=2^10-2^1-2^0=2^10-3;
в двоичной системе счисления х=01111111101; m=100...0;
машинное представление числа в формате DOUBLE:
0 00000000 00000000 00000000 00000000 31
32 00000000 00000000 11011000 00111111 63
3). Десятичное число 2.5;
аналогичные выкладки дают нормализованную мантиссу: 1.0100...0;
машинное представление числа 2.5:
00000000 00000000 00000000 00000000
00000000 00000000 00000100 01000000
4). Значения верхней и нижней границ диапазона положительных
чисел:
~1.8*10^308 - 11111111 11111111 11111111 11111111
11111111 11111111 11101111 01111111
~4.9*10^(-324) - 00000001 00000000 00000000 00000000
00000000 00000000 00000000 00000000
Символ ~ обозначает приближенное значение числа.
МАШИННОЕ ПРЕДСТАВЛЕНИЕ ДАННЫХ ТИПА EXTENDED. Формат машинно-
го представления данных типа EXTENDED следующий:
мл.байт ст. байт
7 0 15 8 23 16 31 24 39 32 47 40 55 48 63 56 71 64 79 72
м..м м..м м..м м..м м..м м..м м..м м..м х..х sх..х
-56-63-48-55-40-47-32-39-24-31-16-23-8 -15 0 -7 7 0 14 8
где верхняя строка цифр - номера разрядов памяти;
нижняя строка цифр - показатели степеней разрядов мантиссы и
характеристики;
s - знаковый разряд числа;
м - нормализованная мантисса;
х - характеристика числа.
Например: 1). Число -15.375;
в двоичной системе счисления -1111.011;
после нормализации -1.111011*2^3; р=3.
Учитывая присутствие скрытой единицы и сдвиг порядка, получа-
ем: s=1; х=2^14-1+3=2^14+2^1=16386;
в двоичной системе счисления х=100000000000010; м=11110110...0
(в мантиссе единица стоящая слева от запятой не отбрасывается).
Машинное представление данного числа в формате EXTENDED:
0..0 0..0 0..0 0..0 0..0 0..0 0..0 11110110 00000010 11000000
2). Число 1.0;
аналогичные выкладки дают
нормализованную мантиссу: 1.0...0;
машинное представление числа 1.0:
0..0 0..0 0..0 0..0 0..0 0..0 0..0 10000000 11111111 00111111
3). Значения верхней и нижней границ диапазона положительных
чисел (символом * помечены разряды, значения которых при данной
характеристике не идентифицируются т. е. их значения не влияют на
значение мантиссы):
~1.2*10^4932 - ******** ******** 11111111 11111111 11111111
11111111 11111111 11111111 11111111 011111111
~3.1*10^4944 - ******** ******** 00000001 00000000 000000000
00000000 00000000 00000000 00000001 000000000
– Конец работы –
Эта тема принадлежит разделу:
Числовые типы Целые типы объектов являющихся дискретными по своей... Операции над числовыми типами... Над числовыми типами как и над всеми другими возможны...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Вещественные типы
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов