- •Основные типы данных
- •Переменные и константы целого типа
- •Переменные типа int
- •Классы памяти и инициализация переменных
- •Переменные типа long
- •Константы целого типа
- •Переменные типа short
- •Переменные типа char
- •Константы типа char
- •Строки, или строковая константа, или литерал
- •Переменные вещественного типа
- •Константы вещественного типа
- •Именованные константы
- •Преобразование типов Преобразования при вычислении выражений
- •Преобразование типов при выполнении операций присваивания
- •Преобразования при приведении типов
Переменные вещественного типа
В языке Си (С++) есть три формы внутреннего представления вещественных чисел (чисел с дробной частью): float , double , long double .
Вещественные числа представляются в виде мантиссы М и порядка Р, т.е. A = M*2Р.
Числа типа float – это вещественные числа одинарной точности, занимают в памяти байта ( 32 бита) и могут принимать значения от 3.4*10–38 до 3.4*10+38 (можно ввести или вывести только 7 значащих десятичных цифр). Мантисса занимает 23 бита, а порядок 8 бит.
Зн |
Р(8 бит) |
M (23 бита) |
float |
31 |
30 23 |
22 0 |
|
Числа типа double – это вещественные числа двойной точности, занимают в памяти байт ( 64 бита) и могут принимать значения от 1.7*10–308 до 1.7*10+308 (можно ввести или вывести только 15 значащих цифр). Мантисса занимает 52 бита, а порядок 11 бит.
Зн |
P(11 бит) |
M (52 бита) |
double |
63 |
62 52 |
51 0 |
|
Числа типа long double – это вещественные числа увеличенной точности, занимают в памяти байт ( 80 бит) и могут принимать значения от 3.4*10 –4932 до 3.4*10+4932 (можно ввести или вывести 19 значащих цифр). Мантисса занимает 63 бита, а порядок 15 бит.
Зн |
P (15 бит) |
M (63 бита) |
long double |
79 |
78 64 |
63 0 |
|
Определение переменных этих типов выполняется с помощью записи:
float d; double e; long double g; float d1=5.27;
Константы вещественного типа
Компилятор распознает вещественные константы по “внешнему виду”.
Константа с плавающей точкой может состоять из следующих частей: знак числа, целая часть, десятичная точка, дробная часть, признак экспоненты е ( Е ) (порядка), знак порядка, показатель степени (значение порядка обозначается десятичной константой), суффикс F ( f ) или L ( l ).
При записи вещественной константы могут отсутствовать: знак числа и порядка (по умолчанию +), целая или дробная части .5, 33., десятичная точка 2е+6 или признак экспоненты с показателем степени 2.6, суффикс.
По умолчанию вещественные константы представляются как тип double . Если необходимо по какой-либо причине, чтобы числа представлялись в виде float , то записываем с суффиксом f (13.3f), а если long double , то с суффиксом L (1.5L).
float g1=-3.14f; double g2=-3.1415E-45; long double g3=3.141592L;
При выводе на экран (печать) или при вводе с клавиатуры чисел с плавающей точкой используются следующие форматеры (спецификаторы формата):
float %f %e %g
double %lf %le %lg
long double %Lf %Le %Lg
Например:
scanf(“%f %lf %Lf”,&g1,&g2,&g3);
printf(“g1=%f g2=%lf g3=%Lf\n”,g1,g2,g3);