Типы данных
Концепция типа данных
Концепция типа данных
Простые типы данных
Простые типы данных
Диапазоны значений простых типов данных для IBM PC
Простые типы данных
Расширенный символьный тип
Расширенный символьный тип
Целочисленный тип
Вещественный тип
Логический тип
Тип void
Спецификатор auto
90.15K
Категория: ПрограммированиеПрограммирование

ОАиП_Типы_данных

1. Типы данных

Преподаватель: Гущин Павел Алексеевич

2. Концепция типа данных

Типданныхопределяет:
1. внутреннеепредставлениеданных в памяти
компьютера;
Концепция
типа данных
2. множествозначений, которые могут принимать
величины этого типа;
3. операцииифункции, которые можно применять к
величинам этого типа.
Все типы языка С++ можно разделить на простые
(скалярные), составные(агрегатные) и
функциональные. Простые типы могут быть
стандартными и определенными программистом.

3. Концепция типа данных

В языке С++ определено шесть стандартных простых
типов данных для представления целых,
вещественных, символьных и логических величин.
Концепция
типа данных
На основе этих типов, а также массивов и указателей
(указатель не является самостоятельным типом, он
всегда связан с каким-либо другим конкретным
типом), программист может вводить описание
собственных простых или структурированных типов.
К структурированным типам относятся перечисления,
функции, структуры, объединения и классы.

4. Простые типы данных

Простые типы делятся на целочисленные типы и типы с
плавающей точкой.
Для описания стандартных типов определены
следующие ключевые слова:
Простые типы
данных
1.
2.
3.
4.
5.
6.
int (целый);
char (символьный) ‘a’;
wchar_t (* расширенный символьный);
bool (логический);
float (вещественный);
double (вещественный с двойной точностью).

5. Простые типы данных

Существует четыре спецификатора типа, уточняющих
внутреннее представление и диапазон значений
стандартных типов:
Простые типы
данных
1.
short (короткий);
2.
long (длинный);
3.
signed (со знаком);
4.
unsigned (без знака).

6. Диапазоны значений простых типов данных для IBM PC

Тип
Диапазон значений
Размер (байт)
bool
true и false
1
signed char
–128 .. 127
1
unsigned char
0 .. 255
1
signed short int
–32 768 .. 32 767
2
unsigned short int
0 .. 65 535
2
signed long int
–2 147 483 648 .. 2
147 483 647
4
unsigned long int
0 .. 4 294 967 295
4
float
3.4e–38 .. 3.4e+38
4
double
1.7 e–308 .. 1.7 e+308
8
long double
3.4 e–4932 .. 3.4
e+4932
10

7. Простые типы данных

Символьный тип
Простые типы
данных
Данные типа char в памяти компьютера всегда
занимают 1 байт. Символьный тип может быть со знаком
или без него. В величинах со знаком
можно
хранить значение от -128 до 127. Соответственно
значения переменных типа
могут
находиться в диапазоне от 0 до 255.
При работе с символьными данными нужно помнить,
что если в выражении встречается одиночный символ, то
он должен быть заключен в одинарные кавычки (‘a’).

8. Расширенный символьный тип

wchar_t: представляет расширенный символ. На Windows
занимает в памяти 2 байта (16 бит), на Linux - 4 байта (32
бита). Может хранить любой значение из диапазона от 0 до 65
535 (при 2 байтах), либо от 0 до 4 294 967 295 (для 4 байт)
Расширенный
символьный
тип
char8_t: представляет один символ в кодировке Unicode.
Занимает в памяти 1 байт. Может хранить любой значение из
диапазона от 0 до 256
char16_t: представляет один символ в кодировке Unicode.
Занимает в памяти 2 байта (16 бит). Может хранить любой
значение из диапазона от 0 до 65 535
char32_t: представляет один символ в кодировке Unicode.
Занимает в памяти 4 байта (32 бита). Может хранить любой
значение из диапазона от 0 до 4 294 967 295

9. Расширенный символьный тип

wchar_t: представляет Тип wchar_t — это основной тип,
предназначенный для наборов символов, размер которых выходит за
пределы одного байта. Собственно отсюда и его название: wchar_t wide (широкий) char. происходит от широкого символа, потому что этот
символ «шире», чем обычный однобайтовый символ. Значения wchar_t
определяются также как и символы char за тем исключением, что они
предваряются префиксом "L":
Расширенный
символьный
тип
Стоит учитывать, что для вывода на консоль
символов wchar_t следует использовать
не std::cout, а поток std::wcout:
При этом поток std:: может работать как с char, так и с wchar_t. А
поток std::cout длwcoutя переменной wchar_t вместо символа будет
выводить его числовой код. символ.
Префиксы для строковых литералов
wchar_t a1 {L'A’};
//задает значение символа ‘A’
// Также можно передать
символа
wchar_t a1 {L'\x41’};
код
char h = 'H';
wchar_t i {L'i'};
std::wcout << h << i <<'\n';

10. Целочисленный тип

Переменная типа int в памяти компьютера может
занимать либо 2, либо 4 байта. Это зависит разрядности
процессора. По умолчанию все целые типы считаются
знаковыми, то есть спецификатор
можно не
указывать. Спецификатор
позволяет представлять
только положительные числа.

11. Вещественный тип

Число с плавающей точкой представлено в форме mE +p, где m — мантисса (целое или дробное число с
десятичной точкой), p — порядок (целое число).
Обычно величины типа float занимают
4 байта, а double 8 байт.
Таблица диапазонов значений вещественного типа:
float
3,4E-38…3,4E+38
4 байта
double
1,7E-308…1,7E+308
8 байт
long double
3,4E-4932…3,4E+4932
8 байт

12. Логический тип

Переменная типа bool может
принимать только два значения
(истина) или
(ложь). Любое
значение, не равное нулю,
интерпретируется как
. Значение
представлено в
памяти как .

13. Тип void

Тип void используется для определения функций,
которые не возвращают значения, для указания
пустого списка аргументов функции, как базовый тип
для указателей и в операции приведения типов.

14. Спецификатор auto

Иногда бывает трудно определить тип выражения. В
этом случае можно предоставить компилятору самому
выводить тип объекта. И для этого применяется
спецификатор auto. При этом если мы определяем
переменную со спецификатором auto, эта переменная
должна быть обязательно инициализирована какимлибо значением:
На основании присвоенного значения компилятор
выведет тип переменной. Неинициализированные
переменные со спецификатором auto не допускаются:
auto number = 5;
// number имеет тип int
auto sum {1234.56}; // sum имеет тип double
auto distance {267UL}; // distance имеет тип unsigned
long
auto number;
// ошибка
English     Русский Правила