Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции программирование / polevoy_cpp_2012_spring_lecture_05

.pdf
Скачиваний:
24
Добавлен:
20.04.2015
Размер:
128.48 Кб
Скачать

Типы с плавающей точкой

float – одинарная точность

double – двойная точность

long double – расширенная точность

10.03.2010

cppNewb.ru

41

Литералы с плавающей точкой

‘.’ –разделитель

F – суффикс float литерала

L – суффикс long double литерала

пример:

12.5

3F

3.0L

1.23E-10

78.3E-1L

10.03.2010

cppNewb.ru

42

Пустой тип (void)

void – в качестве возвращаемого значения, для указания, что функция ничего не возвращает

void* – указатель на объекты неизвестного типа

10.03.2010

cppNewb.ru

43

Рекомендуемые типы

bool

char

int

double

10.03.2010

cppNewb.ru

44

Выбор типа

unsigned - массив битов

signed – все остальное

требуемая точность

ограничения по использованию памяти

10.03.2010

cppNewb.ru

45

Диапазоны арифметических типов

тип

минимальный диапазон

 

 

char

[-128,127] или [0, 255]

 

 

unsigned char

[0, 255]

 

 

signed char

[-128, 127]

 

 

int

[-2^15, 2^15 - 1]

 

 

unsigned int

[0, 2^16]

 

 

double

10 значащих цифр

 

 

wchar_t

как unsigned int

 

 

10.03.2010

cppNewb.ru

46

Размеры арифметических типов

1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)

sizeof(float) <= sizeof(double) <= sizeof(long double)

sizeof(T) == sizeof(signed T) == sizeof(unsigned T)

10.03.2010

cppNewb.ru

47

Неявные преобразования

повышение

bool -> int

enum -> int или long

обеспечение точности

int + long

int + double -> double

усечение int n(f);

10.03.2010

cppNewb.ru

48

Округление (примеры)

• до целого (с усечением)

пример:

int size(d);

• до ближайшего

пример:

int size(d + 0.5);

10.03.2010

cppNewb.ru

49

Явные преобразования

static_cast<Тип>(выражение)

• преобразование родственных типов

пример:

int roundVal = static_cast<int>(doubleVal);

10.03.2010

cppNewb.ru

50