Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_2_изд_испр.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.27 Mб
Скачать

3.1.2. Данные с плавающей точкой

Это семейство типов, значения которых являются вещественными(дробны-ми). Типы различаются диапазоном значений и объемом выделяемой под элемент памяти.

Память в

байтах

Память в

разрядах

Диапазон

Точность представления (число разрядов мантиссы)

Тип

Basic

Тип

C

4

32

|x|<3,4...1038

6-7

single

float

8

64

|x|<1,79...10308

16

double

double

8

64

|x|<1,79...10308

16

long double

Замечание. Типы double и long double в современных версиях языка C не отличаются. Тип long double введен для совместимости со стандартом языка, поэтому его употреблять не рекомендуется.

Литералы имеют 2 формы записи:

- обычную:

[+|-]<целая часть>.<дробная часть>

и экспоненциальную или показательную:

<мантисса>e<степень>,

где мантисса – это целое число или число с плавающей точкой в обычной форме, e означает 10 в степени (регистр не важен), степень – целое число.

Все литералы с плавающей точкой относятся к типу double.

Пример.

-2.3 5e-15 -2.245E12 0.0002 .0002Basic–>0.0002 среда корректирует)

В языке С допустима запись вида 26., чтобы избежать дополнительного преобразования.

Несмотря на различные формы записи литералов (внешнего представления) данные этого типа хранятся в памяти компьютера в форме с плавающей точкой (мантисса, порядок), отсюда и произошло название типа.

Замечание 1. В языке C разделитель между целой и дробной частью числа или мантиссы в виде десятичной точки может отсутствовать только при наличии степени (экспоненты). Если отсутствуют и точка, и степень, это означает литерал целого типа.

Замечание 2. Basic. Весьма важно!!! Во многих странах, в том числе и в нашей, в качестве десятичного разделителя используется символ ",". Более того, многие программы, например Microsoft Excel, используют в этом качестве установки ОС, которые могут быть изменены. В результате при вводе данных с клавиатуры или выводе их на экран (печать) используются установки ОС, однако при задании литералов в тексте программы необходимо употреблять в качестве разделителя точку. Эти проблемы также возникнут при работе с датами, временем, денежными единицами.

3.1.3. Логический тип

Используется для задания логических условий и свойств объектов.

Описывается ключевыми словами bool в языке C++ и boolean в языке Basic. Литералы этого типа имеют только 2 значения:

true (истина) и false (ложь).

Basic: в памяти занимают 2 байта (16 разрядов) и хранятся в виде true (-1), false (0).

C++: в памяти занимают 1 байт (8 разрядов) и хранятся в виде true (1), false (0).

Замечание. В стандарте языка C логический тип не предусмотрен, однако в этом качестве можно использовать любую модификацию целого типа. Если значение условия не равно 0, то считается, что оно имеет значение true, если равно 0, то – значение false.