Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lesson_1_2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
280.06 Кб
Скачать
  1. Типы данных (числовые, символьные, логические)

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

Биты и байты

Фундаментальной единицей памяти компьютера является бит. Его можно рассматривать как электронный переключатель, который может быть установлен в одно из двух положений: "включен" и "выключен". Положение "выключен" представляет значение 0, а положение "включен" — значение 1. Порция памяти, состоящая из 8 битов, может представлять одну из 256 различных комбинаций. Число 256 получено исходя из того, что каждый бит имеет два возможных состояния, что в конечном итоге дает общую сумму комбинаций для 8 бит: 2x2x2x2x2x2x2x2, или 256. Таким образом, 8-битная структура может представлять значения от 0 до 255 или от -128 до 127. Каждый дополнительный бит удваивает количество комбинаций. Это означает, что 16-битная порция памяти позволяет представлять 65 536 разных значений, 32-битная — 4 294 672 296, а 64-битная — 18 446 744 073 709 551 616. Для сравнения: с помощью типа long без знака не удастся представить количество людей на земле или число звезд в нашей галактике, но посредством типа long long это вполне возможно.

Байт обычно означает 8-битную порцию памяти. В этом смысле байт представляет собой единицу измерения, которая описывает объем памяти в компьютере, причем 1 Кбайт составляет 1024 байта, а 1 Мбайт — 1024 Кбайт.

В настоящее время во многих системах используется минимальная гарантия: тип short имеет 16 битов(2 байта), а тип long — 32 бита (4б).

Варианты для типа int. Он может иметь ширину в 16 (2б), 24(3б) или 32(4б) бита. Он может быть даже 64 бита, предоставляя минимальную ширину long и long long.

Числовые: целые и вещественные.

Целочисленные типы short, int, long и long long

Типы без знаков

Каждый из только что рассмотренных четырех целочисленных типов имеет беззнаковую версию, которая не может хранить отрицательные значения. За счет этого можно увеличить наибольшее значение, которое способна хранить переменная. Например, если тип short представляет диапазон значений от -32 768 до 32 767, то беззнаковый вариант этого типа будет представлять диапазон от 0 до 65 535.

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

unsigned short change; // тип short без знака

unsigned int rovert; // тип int без знака

unsigned quarterback; // тоже тип int без знака

unsigned long gone; // тип long без знака

unsigned long long lang_lang; // тип long long без знака

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

float, double и long double.

Требования в С и C++ относительно количества значащих разрядов следующие: тип float должен иметь, как минимум, 32 бита, double — как минимум, 48 битов и естественно быть не меньше чем float, a long double должен быть минимум таким же, как и тип double. Однако обычно float занимает 32 бита, double — 64 бита, a long double — 80, 96 или 128 битов. Все три типа могут иметь одинаковый размер

Преимущества и недостатки чисел с плавающей точкой

Преимущества: они могут представлять значения, расположенные между целыми числами; поскольку у них есть масштабный коэффициент, они могут представлять более широкий диапазон значений. Операции с плавающей точкой обычно выполняются медленнее, чем целочисленные операции, и могут приводить к потере точности (недостаток).

Тип float может представлять только первые 6 или 7 цифр числа.

Символьные типы данных - Тип char: символы и короткие целые числа – 1байт

Сhar предназначен для хранения символов, таких как буквы и цифры. char является еще одним целочисленным типом.

В отличие от int, тип char по умолчанию не имеет знака!

Типа для хранения строк в С не существует

Традиционный 8-битовый тип char может представлять базовый набор символов.

Char bob = 'P';

Логический - ТИП bool – описывает логические значения – 1 байт

Логические данные могу принимать одно из двух значений: истина (true) либо ложь (false).

Ненулевые значения интерпретируются как true, a нулевые — как false. Теперь для представления истинного и ложного значений можно использовать тип bool, а предварительно определенные литералы true и false позволяют представлять эти значения. Это значит, что можно записывать операторы, подобные следующему:

bool is_ready = true;

Теперь для представления истинного и ложного значений можно использовать тип bool, а предварительно определенные литералы true и false позволяют представлять эти значения. Это значит, что можно записывать операторы, подобные следующему:

bool is_ready = true;

Линейка приоритетов (от низшего к высшему):

Bool > char > short > int > long > float > double

bool,char,short-int-unsigned int-long-unsigned long-float-double-long double

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

Предположим, например, что переменная so_long имеет тип long, переменная thirty — тип short, а в программе присутствует следующий оператор:

so_long = thirty; // присваивание значения типа short переменной типа long

Программа принимает значение переменной thirty (обычно 16-битное) и расширяет его до значения long (обычно 32-битное) во время присваивания.

Проблемы при преобразовании чисел:

  1. Больший тип с плавающей точкой в меньший тип с плавающей точкой, например, double в float – Потеря точности (значащих цифр); исходное значение может превысить диапазон, допустимый для целевого типа, поэтому результат окажется неопределенным.

  2. Тип с плавающей точкой в целочисленный тип – Потеря дробной части; исходное значение может превысить диапазон целевого типа, поэтому результат будет неопределенным.

  3. Больший целочисленный тип в меньший целочисленный тип, например, long в short – Исходное значение может превысить диапазон, допустимый для целевого типа; обычно копируются только младшие байты.

Правила преобразования – операнд меньшего ранга преобразовывается в операнд высокого ранга!

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

Чтобы преобразовать значение int, хранящееся в переменной по имени thorn, в тип long, можно использовать одно из следующих выражений:

(long) thorn // возвращает результат преобразования thorn в тип long

long (thorn) // возвращает результат преобразования thorn в тип long

В общих чертах можно делать следующее:

(имяТипа) значение II преобразует значение в тип имяТипа

имяТипа (значение) II преобразует значение в тип имяТипа

Первая форма представляет стиль С, а вторая — стиль C++.

Определение количества цифр после запятой в вещественном числе в выводе:

В заголовке: #include <iomanip>

В выводе: cout << setprecision(4) << a << endl; //например 10.53 – 2 знака после запятой, всего 4 знака!

а может 8.234 – тоже всего 4 знака!

Или

printf ("%.2f", ml); //указывается 2 знака после запятой! – 10.53 или 8.23 (не определяет общее число знаков)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]