- •Литература
- •1. Базовые средства языка
- •Алфавит языка
- •1.5. Типы данных Си
- •1.5.4. Логический тип
- •1.8. Операции и выражения
- •Операции присваивания
- •Арифметические операции
- •Логические операции
- •1.10. Структура программы
- •1.11. Ввод и вывод данных
- •Функции ввода- вывода
- •1.12. Объектно-ориентированные средства ввода-вывода.
- •2. Операторы управления
- •2.1. Понятие алгоритма
- •2.2. Изображение алгоритма в виде блок-схемы
1.5. Типы данных Си
В любой программе выполняется обработка каких-либо данных. Данные различного типа хранятся и обрабатываются по разному.
Тип данных определяет:
внутреннее представление данных в памяти компьютера;
множество значений, которые могут принимать величины этого типа;
операции и функции, которые можно применять к величинам этого типа.
Данные в языке Си описываются в начале функции.
Обязательное описание типа позволяет компилятору проводить проверку допустимости различных конструкций программы.
Типы языка Си можно разделить на основные и составные.
Основные типы данных:
char – символьный,
int – целый,
float – вещественный,
double – вещественный с двойной точностью,
bool – логический,
void – без типа (бестиповый).
Спецификаторы типов2:
short – короткий;
long – длинный;
signed – знаковый;
unsigned – беззнаковый.
1.5.1. Символьный тип (char)
Под величину символьного типа отводится количество байт, достаточное для размещения одного символа. Как правило, это 1байт.
|
Тип |
Диапазон |
Размер |
|
char |
–128…127 |
1 байт |
|
unsigned char |
0…255 |
1 байт |
|
signed char |
–128…127 |
1 байт |
1.5.2. Целый тип (int)
Размера типа int зависит от компьютера и компилятора. Для 16-разрядного процессора под величины этого типа отводится 2 байта, для 32-разрядного – 4 байта.
Спецификатор short перед именем типа указывает компилятору, что под число следует отвести 2 байта не зависимо от разрядности процессора.
Спецификатор long означает, что целая величина будет занимать 4 байта.
По умолчанию все целые типы считаются знаковыми, т.е. спецификатор signed можно не указывать.
|
Тип |
Диапазон |
Размер |
|
int |
-32767…32767 |
2 байта 4 байта |
|
unsigned int |
0…65535 |
--- |
|
signed int |
-32767…32767 |
--- |
|
short int |
-32767…32767 |
2 байта |
|
long int |
-2147483647 2147483647 |
4 байта |
|
unsigned short int |
0…65535 |
2 байта |
|
signed short int |
-32767…32767 |
2 байта |
|
long long int |
–(263–1) … …(263–1) |
8 байт |
|
signed long int |
-2147483647 2147483647 |
4 байта |
|
unsigned long int |
0… 4294967295 |
4 байта |
|
unsigned long long int |
0 … 264–1 |
8 байт |
1.5.3. Типы с плавающей
точкой (float, double)
Внутреннее представление вещественного числа в памяти компьютера отличается от представления целого числа.
Число с плавающей точкой представлено в экспоненциальной форме mE±p, где m – мантисса (целое или дробное число с десятичной точкой), p – порядок (целое число).
Для того чтобы перейти от экспоненциальной формы к обычному представлению с фиксированной точкой, необходимо мантиссу умножить на десять в степени порядок.
Например,
-6.42Е+2 = -6.42.102 = -642,
3.2E-6 = 3.2.10-6 =0.0000032
|
Тип |
Диапазон |
Размер |
|
float |
3.4Е-38…3.4E+38 |
4 байта |
|
double |
1.7Е-308…1.7E+308 |
8 байт |
|
long double |
3.4Е-4932…3.4E+4932 |
10 байт |
