Представление информации в языке Си
Простые типы данных. В Си можно использовать различные типы данных для представления хранимой и обрабатываемой информации. В MPLAB C18 используются две разновидности типов: целые и с плавающей точкой. Данные каждого типа занимают определенное количество байт памяти.
Основные целые типы данных:
char – однобайтное;
int – двухбайтное;
long – четырехбайтное.
По умолчанию целые типы являются данными со знаком. При использовании их без знака, они записываются как unsigned char, unsigned int, unsigned long.
Данные каждого типа могут принимать значения в известном диапазоне. Например, char как однобайтное число со знаком имеет диапазон от -128 до +127. Беззнаковое unsigned char имеет диапазон от 0 до 255.
Данные с плавающей точкой обозначаются как float и занимают в памяти 4 байта.
Основные объекты, с которыми работает программа на языке Си – переменные и константы
Константы. Термин константа, в общем случае, относится к значению, которое не может быть изменено в ходе выполнения программы. В языке Си константы могут быть строковыми, символьными, целыми и вещественными (с плавающей точкой). Табл. 1 описывает форматы, соответствующие каждому виду констант.
Таблица 1.
Константа | Формат | Примеры |
символьная | Символ, заключенный в апострофы | ‘A’, ’!’ |
целая | Десятичный: последовательность цифр, не начинающаяся с нуля Шестнадцатиричный: префикс 0x, за которым следуют шестнадцатиричные цифры Двоичный: префикс 0b, за которым следуют двоичные цифры | 23 , 69 , 789 0x57 , 0xA5 0b10101010 |
вещественная | Десятичный: [цифры].[ цифры ] Экспоненциальный: [цифры]Е(е)+(-)[цифры ] | 1. , 2.54 5е6, 2.3Е-8, 5.67е-5 |
строковая | “Символы” | “hello” |
Переменные. Чтобы выделить память для данных конкретного типа, нужно определить (объявить) переменную. Сначала указывается тип данных, а затем имя переменной, как указано ниже:
int i; // Определение целой двухбайтовой переменной i со знаком
unsigned char counter = 0; //Определение и инициализация однобайтной
// беззнаковой переменной counter
Определяя переменную, можно присвоить ей начальное значение. Можно также определить несколько переменных одного типа, перечисляя их через запятую.
Имена переменных могут состоять из букв латинского алфавита, цифр и символа подчеркивания ( _ ), который считается буквой. Первый символ имени обязательно должен быть буквой или символом подчеркивания. Строчные и заглавные буквы различаются, т. е. Beta, beta и BETA – это различные имена. Число символов в имени не ограничено, но значимыми (для компилятора) являются только первые 32 символа. Остальные символы имени игнорируются. Для удобства чтения программ рекомендуется в качестве имен переменных использовать только строчные буквы. Символ подчеркивания обычно используется для разделения слов, чтобы сделать имя более понятным, например, city_tax вместо citytax.
В качестве имен переменных и констант нельзя использовать зарезервированные в Си слова (ключевые слова), например: if , else, for, const, char и т.д.
Операции и выражения в Си
Выражения в языке Си – это последовательность операндов, операций и символов-разделителей. Операнды – это переменные, константы либо другие выражения. По числу операндов, участвующих в операции, различают две группы операций: унарные (один операнд) и бинарные (два операнда). По типу выполняемой операции различают арифметические, поразрядные логические, сдвига, логические, операции отношения и др.
Арифметические операции. Язык Си включает стандартный набор арифметических операций сложения (+), вычитания (-), умножения (*) и деления (/), не требующих особого пояснения. Специфичными для Си являются операции определения остатка (%), инкремента (++) и декремента (--).
Поразрядные логические операции. В Си используются:
& - поразрядное логическое И (AND);
| - поразрядное логическое ИЛИ (OR);
^ - поразрядное исключающее ИЛИ (XOR);
~ - поразрядная инверсия.
Операции сдвига. Си имеет две операции поразрядного сдвига:
<< - сдвиг операнда влево на число двоичных разрядов, указанное справа от знака операции;
>> - сдвиг операнда вправо на число двоичных разрядов, указанное справа от знака операции.
Логические операции и операции отношения. Эти операции используются для формирования логических выражений, имеющих только два значения: 1, если логическое выражение ИСТИННО (по англ. TRUE), и 0, если логическое выражение ЛОЖНО (по англ. FALSE). Следует отметить, что в языке Си нет логических данных (boolean).
Операции отношения обозначаются следующим образом:
== равно; != не равно; < меньше; > больше; <= меньше или равно; >= больше или равно.
Логические операции обозначаются:
&& - логическое И;
| | - логическое ИЛИ;
! – логическое НЕ.