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

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

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

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

•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