Опубликован: 26.06.2003 | Уровень: для всех | Доступ: платный
Лекция 6:

Встроенные типы данных

< Лекция 5 || Лекция 6: 123 || Лекция 7 >

Вещественные числа

Вещественные числа в Си++ могут быть одного из трех типов: с одинарной точностью — float, с двойной точностью – double, и с расширенной точностью – long double.

float x;
double e = 2.9;
long double s;

В большинстве реализаций языка представление и диапазоны значений соответствуют стандарту IEEE (Institute of Electrical and Electronics Engineers) для представления вещественных чисел. Точность представления чисел составляет 7 десятичных значащих цифр для типа float, 15 значащих цифр для double и 19 — для типа long double.

Вещественные числа записываются либо в виде десятичных дробей, например 1.3, 3.1415, 0.0005, либо в виде мантиссы и экспоненты: 1.2E0, 0.12e1. Отметим, что обе предыдущие записи изображают одно и то же число 1.2.

По умолчанию вещественная константа принадлежит к типу double. Чтобы обозначить, что константа на самом деле float, нужно добавить символ f или F после числа: 2.7f. Символ l или L означает, что записанное число относится к типу long double.

const float pi_f = 3.14f; 
double pi_d = 3.1415;
long double pi_l = 3.1415L;

Для вещественных чисел определены все стандартные арифметические операции сложения ( + ), вычитания ( - ), умножения ( * ), деления ( / ) и изменения знака ( - ). В отличие от целых чисел, операция нахождения остатка от деления для вещественных чисел не определена. Аналогично, все битовые операции и сдвиги к вещественным числам неприменимы; они работают только с целыми числами. Примеры операций:

2 * pi;
(x – e) / 4.0

Вещественные числа можно сравнивать на равенство ( == ), неравенство ( != ), больше ( > ), меньше ( < ), больше или равно ( >= ) и меньше или равно ( <= ). В результате операции сравнения получается логическое значение истина или ложь.

Если арифметическая операция применяется к двум вещественным числам разных типов, то менее точное число преобразуется в более точное, т.е. float преобразуется в double и double преобразуется в long double. Очевидно, что такое преобразование всегда можно выполнить без потери точности.

Если вторым операндом в операции с вещественным числом является целое число, то целое число преобразуется в вещественное представление.

Хотя любую целую величину можно представить в виде вещественного числа, при таком преобразовании возможна потеря точности (для больших чисел).

Логические величины

В языке Си++ существует специальный тип для представления логических значений bool. Для величин этого типа существует только два возможных значения: true (истина) и false (ложь). Объявление логической переменной выглядит следующим образом:

bool condition;

Соответственно, существуют только две логические константыистина и ложь. Они обозначаются, соответственно, true и false.

Для типа bool определены стандартные логические операции: логическое И ( && ), ИЛИ ( || ) и НЕ ( !).

// истинно, если обе переменные cond1 и cond2, истинны
cond1 && cond2
// истинно, если хотя бы одна из переменных истинна 
cond1 || cond2
// результат противоположен значению cond1 
!cond1

Как мы уже отмечали ранее, логические значения получаются в результате операций сравнения. Кроме того, в языке Си++ принято следующее правило преобразования чисел в логические значения: ноль соответствует значению false, и любое отличное от нуля число преобразуется в значение true. Поэтому можно записать, например:

int k = 100;
while (k) {      // выполнить цикл 100 раз
     k--;
}
< Лекция 5 || Лекция 6: 123 || Лекция 7 >
Андрей Одегов
Андрей Одегов
Язык программирования C++
Елена Шумова
Елена Шумова

Здравствуйте! Я у Вас прошла курс Язык программировая Си++.

Заказала сертификат. Хочу изменить способ оплаты. Как это сделать?

Иван Иванов
Иван Иванов
Россия, Екатеринбург
Владимир Алемасов
Владимир Алемасов
Россия