Опубликован: 26.06.2003 | Доступ: свободный | Студентов: 36764 / 5417 | Оценка: 4.07 / 3.80 | Длительность: 15:08:00
ISBN: 978-5-9556-0017-8
Лекция 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 >
Елена Шумова
Елена Шумова

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

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

Маргарита Башкатова
Маргарита Башкатова
Дарья Ильина
Дарья Ильина
Россия, Барнаул, Алтайский Государственный университет, 2016
Игорь Хан
Игорь Хан
Узбекистан, Ташкент, Ташкентский педагогический институт иностранных языков, 1990