Переменные и константы. Типы данных: целый, вещественный, символьный; их представление в оперативной памяти. Размеры данных. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Переменные и константы. Типы данных: целый, вещественный, символьный; их представление в оперативной памяти. Размеры данных.



Прежде всего отметим, что любая программа определяет некоторый набор действий над данными. Мы вводим в компьютер числа, буквы и слова и ожидаем, что он проводить над ними какие-то операции. Значения некоторых данных устанавливаются до начала выполнения программы и сохраняются неизменными в течение всего времени работы программы. Такие данные называются константами. Правила записи констант в программе, мы с вами уже рассмотрели. Значения других данных могут изменяться (в частности, путем присваивания новых значений) во время выполнения программы. Эти данные называются переменными. И переменные, и константы занимают определенные участки в памяти компьютера.

Помимо различий между переменными и константами, существуют также различия между данными разных типов. Одни данные являются числами, другие - символами. Компьютер должен каким-то способом идентифицировать и использовать эти различные виды данных. В языке С распознаются несколько основных типов данных.

Основная цель любой программы состоит в обработке данных. В программе на языке С все переменные перед использованием должны быть объявлены. Переменные могут быть объявлены в любом месте программы, но обязательно перед их первым использованием

Данные различного типа хранятся и обрабатываются по-разному. В любом алгоритмическом языке каждая константа, переменная, результат вычисления выражения или функции должны иметь определенный тип.

Тип данных определяет:

- внутреннее представление данных в памяти компьютера;

множество значений, которые могут принимать величины этого типа;

- операции и функции, которые можно применять к величинам этого типа.

Исходя из этих характеристик, программист выбирает тип каждой величины, используемой в программе для представления реальных объектов. Обязательное описание типа позволяет компилятору производить проверку допустимости различных конструкций программы. От типа величины зависят машинные команды, которые будут использоваться для обработки данных.

Основные типы данных

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

- int (целый);

- char (символьный);

- wchar_t (расширенный символьный);

- bool (логический);

- float (вещественный);

- double (вещественный с двойной точностью).

Первые четыре типа называют целочисленными (целыми), последние два — типами с плавающей точкой. Код, который формирует компилятор для обработки

целых величин, отличается от кода для величин с плавающей точкой.

Существует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:

- short (короткий);

- long (длинный);

- signed (знаковый);

- unsigned (беззнаковый).

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

Целый тип (int)

Размер типа int не определяется стандартом, а зависит от компьютера и компилятора. Для 16-разрядного процессора под величины этого типа отводится 2 байта, для 32-разрядного — 4 байта.,

Спецификатор short перед именем типа указывает компилятору, что под число требуется отвести 2 байта независимо от разрядности процессора. Спецификатор long означает, что целая величина будет занимать 4 байта. Таким образом, на 16-разрядном компьютере эквиваленты 1nt и short 1nt, а на 32-разрядном — int и long int.

Ключевые слова signed и unsigned необязательны. Они указывают, как интерпретируется старший бит в представлении переменной. Если указано ключевое слово unsigned, то старший бит рассматривается как часть числа. Если же указано ключевое слово signed, то старший бит интерпретируется как знак. По умолчанию все переменные целого типа считаются signed. Ключевые слова signed и unsigned могут предшествовать любому целому типу. Они могут употребляться и самостоятельно при определении переменной. В этом случае они рассматриваются соответственно как signed int и unsigned int.

 

Типы short int, long int, signed int и unsigned int можно сокращать до short, long, signed и unsigned соответственно.

Символьный тип (char)

Под величину символьного типа отводится количество байт, достаточное для размещения любого символа из набора символов для данного компьютера, что и обусловило название типа. Как правило, это 1 байт. Тип char, как и другие целые типы, может быть со знаком или без знака. В величинах со знаком можно хранить значения в диапазоне от -128 до 127. При использовании спецификатора unsigned значения могут находиться в пределах от 0 до 255. Этого достаточно для хранения любого символа из 256-символьного набора ASCII. Величины типа char применяются также для хранения целых чисел, не превышающих границы указанных диапазонов.

Стандарт C++ определяет три типа данных для хранения вещественных значений: float, double и long double.

Типы данных с плавающей точкой хранятся в памяти компьютера иначе, чем целочисленные. Внутреннее представление вещественного числа состоит из двух частей — мантиссы и порядка. В IBM PC-совместимых компьютерах величины типа float занимают 4 байта, из которых один двоичный разряд отводится под знак мантиссы, 8 разрядов под порядок и 23 под мантиссу. Мантисса — это число, большее 1.0, но меньшее 2.0. Поскольку старшая цифра мантиссы всегда равна 1, она не хранится.

Для величин типа double, занимающих 8 байт, под порядок и мантиссу отводится 11 и 52 разряда соответственно. Длина мантиссы определяет точность числа, а длина порядка — его диапазон. Как можно видеть из таблицы, при одинаковом количестве байтов, отводимом под величины типа float и long int, диапазоны их допустимых значений сильно различаются из-за внутренней формы представления.

Спецификатор long перед именем типа double указывает, что под величину отводится 10 байтов.

Константы с плавающей точкой имеют по умолчанию тип double

Тип void

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



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 361; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.222.118.194 (0.007 с.)