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

Используется для задания логических условий и свойств объектов.

Описывается ключевыми словами boolв языке C++и boolean в языке Basic. Литералы этого типа имеют только 2 значения:

true (истина) и false (ложь).

Basic: в памяти занимают 2 байта (16 разрядов) и хранятся в виде true (-1), false (0).

C++: в памяти занимают 1 байт (8 разрядов) и хранятся в виде true (1), false (0).

Замечание. В стандарте языка C логический тип не предусмотрен, однако в этом качестве можно использовать любую модификацию целого типа. Если значение условия не равно 0, то считается, что оно имеет значение true, если равно 0, то – значение false.

3.1.4. Символьные данные

Различают представления отдельных символов и последовательностей символов (строк). 1 символ занимает в памяти 1 байт. Каждый символ кодируется целым значением в диапазоне: 0 – 255. Символы с кодами от 0 до 127 представляют собой международную кодовую таблицу ASCII, которая едина для всех стран. Диапазон 128 – 255 содержит символы национальных алфавитов, спецсимволы и др. Эта кодовая страница специфична для различных стран.

Замечание. В обоих языках существует набор символов, каждый из которых занимает в памяти 2 байта. Они используются для представления символов национальных алфавитов, в основном, иероглифического типа (Япония, Китай, Корея и т.п.). Такая кодировка носит название Unicode.В данной версии языка Basic для хранения одного символа используется эта кодировка и отводится 2 байта памяти.

В языке C литерал одиночного символ имеет вид: символ. Для записи символов, не имеющих графического представления или приводящих к неправильной трактовке, используется формат вида ‘\символ.

Пример.

‘a’ ‘C’ ‘\’’ ‘\”’ ‘\\’

‘\n’ – новая строка,

‘\t’ – табуляция,

‘\r’ – возврат каретки (переход к началу той же строки).

В языке Basicдляодиночных символов также применяется тип char, однако он требует 2-х байтов памяти и не относится к целому типу. Литерал для одиночного символа имеет вид “<символ>”C.

Пример.

“a”C

Для строк (последовательностей символов) в обоих языках формат записи литералов одинаков:

"строка"

Пример.

"Это строка!" "Запись в Си и Бэйсике одинакова"

В языке Cдля того, чтобы транслятор мог обнаружить конец строки в памяти, он добавляет в ее "хвост" символ '\0', поэтому строка имеет длину на 1 байт больше. В языке Basic каждая строка переменной длины, к которым следует отнести литералы, дополнительно хранит 10 байтов информации о длине строки.

Пример.

"Это строка!" – длина 12 байтов.

Замечание. В языке Cследует различать записи 0 и '0'. В первом случае значение в памяти будет действительно равно 0, во втором – 48 – ASCII-код символа 0. Записи 0 и '\0' равнозначны.

В языке C два подряд расположенных строчных литерала автоматически объединяются в 1 строку.

Пример.

"Уральский социально-экономический институт"

"Академии труда и социальных отношений" Это 1 строка!

Для представления переменных, значениями которых являются одиночные символы, в языке C используется тип unsigned char (character), который в общем случае относится к целому типу. Переменных, значениями которых являются строки, в языке C нет. Для этой цели используются массивы данных типа char (о них позже).

В языке Basic для строк применяется тип string. Максимальная длина таких строк может достигать 2 млн символов. Отметим, что для работы со строками так же, как и в языке C, можно использовать массивы типа char.