Язык С++ и программирование на нем. Рейзлин В.И. - 54 стр.

UptoLike

Составители: 

56
int i=’A’; // i = 65;
char c=256; // Теряются 8 старших битов; с станет равно ’\0’;
int j=-1;
long l=j;
long m=32768; // Двоичное представление числа 32768
// содержит единственную единицу в 15 разряде.
short int k=m; // k = -32768, так как 15-й разряд для short зна-
ковый.
unsigned u=m; // u = 32768
double d=0.999999;
long n=d; // n = 0
При выполнении арифметических операций также происходит не-
явное преобразование типов. Правила здесь такие:
а) типы char, short, enum преобразуются к типу int, а unsigned
short – к unsigned int; тип float преобразуется к double;
б) затем, если один из операндов имеет тип long double, то и вто-
рой преобразуется к long double;
в) иначе, если один из операндов имеет тип double, то и второй
преобразуется к double;
г) иначе, если один из операндов имеет тип unsigned long, то и
второй преобразуется к unsigned long;
д) иначе, если один из операндов имеет тип unsigned, то и второй
преобразуется к unsigned;
е) иначе, если один из операндов имеет тип long, то и второй пре-
образуется к long;
ж) иначе оба операнда имеют тип int.
Пример 1.
int g = 10, t = 5;
double t2=t*t/2;
double s = g*t2; // s станет равно 120;
double s0 = g*t*t/2.0; // s0 станет равно 125.
Пример 2.