Управляющие символьные последовательности

Целочисленные типы

Целочисленные типы используются для записи символов и целых чисел. К целочисленным относят типы, представленные следующими именами:

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

short…...(короткий);

int (целый);

long (длинный).

Имена целочисленных типов могут вместе с модификаторами signed (знаковый) и unsigned(беззнаковый).

Размеры и диапазон значений целых типов представлены в табл.3.1.

Таблица 1. Таблица целых типов данных

Тип данных размер, байт Диапазон зачений
Минимальное Максимальное
signed char -128
unsigned char
signed short -32768
unsigned short
int -32768
unsigned int
signed long -2147483648
unsigned long

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

Типы с плавающей точкой используются для работы с вещественными числами, представленными в форме записи с десятичной точкой или в «научной» записи, например:

678, -12, 5.786e3, 45,78

К типам с плавающей точкой относят типы, представленные следующими именами:

– float;

– double;

– long double.

Размеры и диапазон значений типов с плавающей точкой представлены в табл. 3.2.

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

Тип данных размер, байт Диапазон зачений
Минимальное Максимальное
float 3.4e-38 3.4e+38
double 1.7e-308 1.7e+308
long double 3.4e-4932 3.4e+4932

Имена данных

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

Имя (идентификатор) может содержать буквы, цифры, символы подчеркивания. Имя должно начинаться с буквы или символа подчеркивания. Длина имени в языке не оговаривается, но многие компиляторы не воспринимают имена длиннее 32 символов. Строчные и прописные буквы в имени различаются. Примеры имен:

a2, max, Max, sort, kol_it, name, str,array.

В качестве имени нельзя использовать служебные слова языка.

Ключевые слова - это зарезервированные идентификаторы, которые наделены определенным смыслом. Их можно использовать только в соответствии со значением известным компилятору языка С++.

Приведем список некоторых ключевых слов языка С++.

auto double int struct break else long switch

register tupedef char extern return void case float

unsigned default for signed union do if sizeof

volatile continue enum short while

Константы

В языке СИ разделяют четыре типа констант: целые константы, константы с плавающей точкой, символьные константы и строковые.

Целая константа – это десятичное, восьмеричное или шестнадцатеричное число, которое представляет целую величину в одной из следующих форм: десятичной, восьмеричной или шестнадцатеричной.

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

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

Шестнадцатеричная константа начинается с обязательной последовательности 0х или 0Х и содержит одну или несколько шестнадцатеричных цифр (цифры представляющие собой набор цифр шеснадцатеричной системы счисления: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

Примеры целых констант:

Десятичная Восьмеричная Шестнадцатеричная

константа константа константа

16 020 0x10

127 0117 0x2B

240 0360 0XF0

Если требуется сформировать отрицательную целую константу, то используют знак "-" перед записью константы (который будет называться унарным минусом). Например: -0x2A, -088, -16 .

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

- десятичные константы рассматриваются как величины со знаком, и им присваивается тип int (целая) или long (длинная целая) в соответствии со значением константы. Если константа меньше 32768, то ей присваивается тип int в противном случае long.

- восьмеричным и шестнадцатеричным константам присваивается тип int, unsigned int (беззнаковая целая), long или unsigned long в зависимости от значения константы согласно табл 3.3

Таблица 3.3

Диапазон шестнадцатеричных констант Диапазон восьмеричных констант Тип
0x0 - 0x7FFF 0 - 077777 int
0X8000 - 0XFFFF 0100000 - 0177777 unsigned int
0X10000 - 0X7FFFFFFF 0200000 - 017777777777 long
0X80000000 - 0XFFFFFFFF 020000000000 - 037777777777 unsigned long

Для того чтобы любую целую константу определить типом long, достаточно в конце константы поставить букву "l" или "L", например:

5l, 6l, 128L, 0105L, OX2A11L.

Константа с плавающей точкой – десятичное число, представленное в виде действительной величины с десятичной точкой или экспонентой. Формат имеет вид:

[ цифры ].[ цифры ] [ Е|e [+|-] цифры ] .

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

Примеры: 115.75, 1.5Е-2, -0.025, .075, -0.85Е2

Символьная константа – представляется символом заключенном в апострофы, например

' '- пробел ,

'Q'- буква Q ,

Управляющие символьные последовательности

В языке С++ широко используются так называемые управляющие символьные костанты (управляющие последовательности), т.е. специальные символьные комбинации, используемые в функциях ввода и вывода информации. Управляющая последовательность строится на основе использования обратной дробной черты (\) (обязательный первый символ) и комбинации латинских букв и цифр (табл. 3.4).

Последовательности вида \ddd и \xddd (здесь d обозначает цифру) позволяет представить символ из набора кодов ПЭВМ как последовательность восьмеричных или шестнадцатеричных цифр соответственно. Например символ возврата каретки может быть представлен различными способами:

\r - общая управляющая последовательность,

\014 - восьмеричная управляющая последовательность,

\x00С - шестнадцатеричная управляющая последовательность.

Управляющая последовательность рассматривается как одиночный символ, допустимо ее использовать в символьных константах. Значением символьной константы является числовой код символа. Примеры:

'\n' - символ новой строки ,

'\\' - обратная дробная черта ,

'\v' - вертикальная табуляция .

Символьные константы имеют тип int и при преобразовании типов дополняются знаком.

Таблица 3.4 Управляющие символьные последовательности

Управляющая последовательность Наименование Шеснадцатеричная замена
\a Звонок
\b Возврат на шаг
\t Горизонтальная табуляция
\n Переход на новую строку 00A
\v Вертикальная табуляция 00B
\r Возврат каретки 00C
\f Перевод формата 00D
\" Кавычки
\' Апостроф
\0 Ноль-символ
\\ Обратная дробная черта 05C
\ddd Символ набора кодов ПЭВМ в восьмеричном представлении  
\xddd Символ набора кодов ПЭВМ в шестнадцатеричном представлении  

Строковая константа (литерал) – последовательность символов (включая строковые и прописные буквы русского и латинского алфавитов, а также цифры) заключенные в двойные кавычки.

Например: "Школа N 35", "город Тамбов", "YZPT КОД".

Отметим, что все управляющие символы, кавычка ("), обратная дробная черта (\) и символ новой строки в строковом литерале и в символьной константе представляются соответствующими управляющими последовательностями. Каждая управляющая последовательность представляется как один символ. Например, при печати литерала "Школа \n N 35" его часть "Школа" будет напечатана на одной строке, а вторая часть "N 35" на следующей строке.

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

Строковый литерал имеет тип char[] . Это означает, что строка рассматривается как массив символов. Отметим важную особенность, число элементов массива равно числу символов в строке плюс 1, так как нулевой символ (символ конца строки) также является элементом массива. Все строковые литералы рассматриваются компилятором как различные объекты.

Операции языка С++

Обработка данных осуществляется путем выполнения над ними различных операций. Все операции языка С можно разделить на:

· Арифметические

· Операции отношений

· Логические.

Знаки арифметических операций:

+ сложение

- вычитание

* умножение

/деление

%получение остатка от деления нацело (деление по модулю).

Бинарными арифметическими операциями являются +, -, *, / и операция деления по модулю %. Имеется унарная операция-, но не существует унарной операции +.

Данные, над которыми выполняется операция, называются операндами.

Операция сложения + приводит к сложению двух значений, размещенных слева и справ от знака сложения.

Операция вычитания - приводит к вычитанию числа, следующего за знаком - , из числа, предшествующего этому знаку.

Операнды, над которыми выполняется операции сложения или вычитания, могут быть константами или переменными.

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

Примеры:

i= k*8;

b=56*5;

g=d*e;

Величина, расположенная слева от знака деления / , делится на значение, указанное справа от этого знака.

Например, в результате выполнения оператора

b = 45.0 / 9.0;

переменная b получит значение 5.0.

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

c = 36 /12.0;

Результатом операции деления будет число с плавающей точкой 3.0.

При делении целых дробная часть результата отбрасывается.

1 / 2 даст в результате 0;

5 / 2 даст в результате 2;

24 / 7 даст в результате 3.

Операцию получения остатка от деления % нельзя использовать с типами float или double, она применяется только к данным целого типа. Операция

X % Y

дает остаток от деления X на Y и, следовательно, равно нулю, когда X делится на Y точно.

9 % 4 дает в результате 1;

8 % 4 дает в результате 0;

15 % 3 дает в результате 1;

4 % 5 дает в результате 4;

3 % 7 дает в результате 3.

Наши рекомендации