Разнообразие типов данных в языке C++ дает программисту возможность выбирать вариант, соответствующий конкретной потребности. Однако такое разнообразие, с другой стороны, усложняет задачу компьютера. Например, сложение двух чисел типа short может выполняться с помощью иных машинных команд, чем сложение двух чисел типа long. Когда имеется 11 типов целочисленных данных и три типа данных с плавающей точкой, компьютеру приходится обрабатывать множество различных случаев, особенно если в одной операции смешаны данные различных типов. Чтобы не допустить возможной путаницы, в языке C++ многие преобразования типов данных выполняются автоматически:
Преобразование данных осуществляется, когда данные одного арифметического типа присваиваются переменной другого арифметического типа.
// данные типа int преобразуются в данные // типа float
float tree = 3;
// данные типа float преобразуются
// в данные типа int
int guess = 3.9832;
Результат:
tree = 3.0
guess = 3
Преобразование данных осуществляется, когда в выражении содержатся данные разных типов.
Когда некоторая операция выполняется над данными двух разных типов, то данные меньшего типа преобразуются в данные большего типа. Например:
int i=45;
float f=450.123;
float r=i+f; // результат float
Преобразование данных осуществляется при передаче аргументов в функции.
Если не знать, что происходит при таких автоматических преобразованиях, то результаты выполнения некоторых программ могут оказаться для вас неожиданными.
Приведение типов:
В общем виде:
(имяТипа) значение
// преобразует значение в данные типа имяТипа
// преобразует значение в данные типа имяТипа
Язык С++ поддерживает следующие поразрядные логические операции.