Преобразование (приведение) типов

Содержание

Слайд 2

Приведение типов Не путать с привидением!!! Преобразование типов.

Приведение типов

Не путать с привидением!!!
Преобразование типов.

Слайд 3

Преобразование (приведение) типов Термин приведение – от слова привЕсти, т.е. привести

Преобразование (приведение) типов
Термин приведение – от слова привЕсти, т.е. привести один

тип данных к другому типу данных.
Привидение – от слова привИдеться, т.е. показаться, не стоит путать два понятия.
Слайд 4

Преобразование (приведение) типов Существует так называемая иерархия типов, где все типы

Преобразование (приведение) типов

Существует так называемая иерархия типов, где все типы размещены

по старшинству.
Для того, что бы разбираться в преобразовании типов, необходимо всегда помнить порядок типов этой иерархии.
Термин приведение – от слова привЕсти, т.е. привести один тип данных к другому типу.
Привидение – от слова привИдиться, т.е. показаться, не стоит путать два понятия.
Слайд 5

Иерархия типов Порядок типов этой иерархии. double (8 байт); long long

Иерархия типов

Порядок типов этой иерархии.
double (8 байт);
long long (8 байт);
float (4

байта);
long (4 байта);
int (4 байта);
short (2 байта);
char (1 байт);
bool (1 байт);
Слайд 6

Преобразование (приведение) типов double (8 байт); long long (8 байт); float (4 байта); long (4 байта);

Преобразование (приведение) типов

double (8 байт);

long long (8 байт);

float (4 байта);

long (4

байта);
Слайд 7

Сужающее преобразование Сужающее преобразование — при таком преобразовании — больший тип

Сужающее преобразование

Сужающее преобразование — при таком преобразовании — больший тип данных в иерархии преобразуется

к меньшему типу, безусловно, в этом случае может произойти потеря данных, поэтому с сужающим преобразованием, следует быть осторожными.
Например:
int A=23.5;
cout<
Слайд 8

Сужающее преобразование

Сужающее преобразование

Слайд 9

Расширяющее преобразование Расширяющее преобразование - ведет к так называемому расширению типа

Расширяющее преобразование
Расширяющее преобразование - ведет к так называемому расширению типа данных от

меньшего диапазона значений к большему диапазону
Слайд 10

Расширяющее преобразование

Расширяющее преобразование

Слайд 11

Виды приведения Неявное преобразование. Все вышеописанные примеры относились к этому типу

Виды приведения
Неявное преобразование.
Все вышеописанные примеры относились к этому типу преобразования.
Такой

вид преобразования также называют автоматическим, т.к. оно происходит автоматически без вмешательства программиста, другими словами, мы ничего не делаем для того, что бы оно произошло.
Слайд 12

Явное преобразование Явное преобразование (приведение типов). В данном случае, преобразование производится

Явное преобразование
Явное преобразование (приведение типов).
В данном случае, преобразование производится программистом,

тогда, когда это необходимо.
double z=37.4;
float y=z;
cout<
Слайд 13

Явное преобразование Явное преобразование (приведение типов). В данном случае, преобразование производится

Явное преобразование
Явное преобразование (приведение типов).
В данном случае, преобразование производится программистом,

тогда, когда это необходимо.
double z=37.4;
float y=(int) z;
cout<
Слайд 14

Пример int testA = 4, testB = 8; float testResult; testResult = testA / testB; cout

Пример
int testA = 4, testB = 8;
float testResult;
testResult = testA /

testB;
cout<< testResult <
Слайд 15

Пример Для получения корректного результата, необходимо одну из переменных в выражении

Пример

Для получения корректного результата, необходимо одну из
переменных в выражении явно

привести к типу float:
int testA = 4, testB = 8;
float testResult;
testResult = (float)testA / testB;
cout<< testResult <
Слайд 16

Преобразование типов в выражении Если в каком-либо выражении используются разные типы

Преобразование типов в выражении

Если в каком-либо выражении используются разные типы данных, то результат,

приводится к большему из этих типов.
int I=27;
short S=2;
float F=22.3;
bool B=false;
float res= I-F+S*B; // 27-22.3+2*0
cout<