logo
Подбельский Фомин_Программирование на языке СИ_

Данные вещественных типов

Тип данных

Размер, бит

Диапазон абсолютных величин

float

32

от 3.4Е - 38до3.4Е+38

double

64

от 1.7Е - 308до 1.7Е+308

long double

80

от 3.4Е - 4932до 1.1Е+4932

Вещественная константа 3.141592653589793 будет воспринята как имеющая тип double, и ей будет выделено 8 байт (64 бита). Тот же тип выбирается для константы 3.14, так как по умолчанию всем вещественным константам присваивается тип double.

Если программиста не устраивает тип, который компилятор приписывает константе, то тип можно явно указать в записи константы с помощью суффиксов: F (или f) - float (для вещественных), U (или u) - unsigned (для целых), L (или l) - long (для целых и вещественных). Например:

3.14159F - константа типа float (выделяется 4 байта);

3.14L - константа типа long double (выделяется 10 байт).

С помощью суффикса U (или u) можно представить целую константу в виде беззнакового целого. Например:

50000U - константа типа unsigned int.

Константе 50000U выделяются 2 байта (вместо четырех, как было бы при отсутствии суффикса (см. табл. 1.1). В этом случае, т.е. для unsigned int, знаковый бит используется для представления одного из разрядов кода числа и диапазон значений становится от 0 до 65535.

Суффикс L (или l) позволяет выделить целой константе 4 байта (32 бита):

500L - константа типа long, которой выделяется 4 байта;

0L - целая константа типа long длиной 4 байта.

Совместное использование в любом порядке суффиксов U (или u) и L (или l) позволяет приписать целой константе тип unsigned long, и она займет в памяти 32 разряда (бита), причем знаковый разряд будет использоваться для представления разряда кода (а не знака). Примеры:

0LU - целая константа типа unsigned long длиной 4 байта;

2424242424UL - константа типа unsigned long.