Вещественные типы
Внутреннее представление Вещественные типы данных хранятся в памяти компьютера иначе, чем целые. Внутреннее представление вещественного числа состоит из двух частей — мантиссы и порядка, и каждая часть имеет знак. Например, число 0,087 представляется в виде 0,87ґ10–1, и в памяти хранится мантисса 87 и порядок –1 (для наглядности мы пренебрегли тем, что данные на самом деле представляются в двоичной системе счисления и несколько сложнее). Существует несколько вещественных типов, различающихся точностью и диапазоном представления данных (табл. 1.8). Точность числа определяется длиной мантиссы, а диапазон — длиной порядка. Таблица 1.8. Вещественные типы данных
Тип |
Название |
Размер, байт |
Значащих цифр |
Диапазон значений |
real |
Вещественный |
6 |
11–12 |
2.9e–39 .. 1.7e+38 |
single |
Одинарной точности |
4 |
7–8 |
1.5e–45 .. 3.4e+38 |
double |
Двойной точности |
8 |
15–16 |
5.0e–324 .. 1.7e+308 |
extended |
Расширенный |
10 |
19–20 |
3.4e–4932 .. 1.1e+4923 |
comp |
Большое целое |
8 |
19–20 |
–9.22e18 .. 9.22e18 (–263 .. 263–1) |
ПРИМЕЧАНИЕ Для первых четырех типов в табл. 1.8 приведены абсолютные величины минимальных и максимальных значений. Автор языка Никлаус Вирт определил всего один вещественный тип — real и отвел под него разумное количество памяти. Однако аппаратно этот тип в компьютерах семейства IBM PC не поддерживается, поэтому впоследствии в язык были введены типы single и double, а также тип extended для работы с большими числами и с высокой точностью. Тип comp на самом деле представляет собой длинные целые числа. Величины этого типа хранятся таким же образом, как целые, но отнести его к целым мешает то, что по области применимости он несколько отличается от остальных. Это объясняется тем, что тип comp не относится к порядковым типам (они рассматриваются далее на с. ). Рассмотрим теперь, что же можно делать с величинами вещественных типов, то есть какие к ним применяются операции и функции. Операции С вещественными величинами можно выполнять арифметические операции, перечисленные в табл. 1.9. Результат их выполнения — вещественный. Таблица 1.9. Арифметические операции для вещественных величин
Операция |
Знак операции |
Сложение |
+ |
Вычитание |
– |
Умножение |
* |
Деление |
/ |
В общем случае при выполнении любой операции операнды должны быть одного и того же типа, но целые и вещественные величины смешивать разрешается. Иными словами, один из операндов может быть целого типа. ПРИМЕЧАНИЕ Обратите внимание на то, что целочисленное и вещественное деление записываются с помощью разных операций. Если требуется получить вещественный результат деления двух целых величин, нужно использовать операцию /, если целый — операцию div. К вещественным величинам можно также применять операции отношения, перечисленные в разделе “Логические типы” (см. с. ). Результат этих операций имеет логический тип. Стандартные функции К вещественным величинам можно применять стандартные функции (табл. 1.10). Таблица 1.10. Стандартные функции и процедуры для вещественных величин
Имя |
Описание |
Результат |
Пояснения |
|
abs |
Модуль |
Вещественный |
|x| записывается abs(x) |
|
arctan |
Арктангенс угла |
Вещественный |
arctg x записывается arctan(x) |
|
cos |
Косинус угла |
Вещественный |
cos x записывается cos(x) |
|
exp |
Экспонента |
Вещественный |
ex записывается exp(x) |
|
frac |
Дробная часть аргумента |
Вещественный |
frac(3.1) даст в результате 0,1 |
|
int |
Целая часть аргумента |
Вещественный |
int(3.1) даст в результате 3,0 |
|
ln |
Натуральный логарифм |
Вещественный |
logex записывается ln(x) |
|
pi |
Значение числа p |
Вещественный |
3,1415926536 |
|
round |
Округление до целого |
Целый |
round(3.1) даст в результате 3 round(3.8) даст в результате 4 |
|
sin |
Синус угла |
Вещественный |
sin x записывается sin(x) |
|
sqr |
Квадрат |
Вещественный |
x2 записывается sqr(x) |
|
sqrt |
Квадратный корень |
Вещественный |
Цx записывается sqrt(x) |
|
trunc |
Целая часть аргумента |
Целый |
trunc(3.1) даст в результате 3 |
|