Часть II. Среда разработки и язык программирования контроллеров Arduino
5.3.5.3. ! (логическое отрицание)
Истина, если операнд
false
, и наоборот. Пример:
if (!(digitalRead(2)== HIGH))
Serial.println("ok");
5.3.6. Унарные операторы
5.3.6.1. ++ (увеличение значения) / -- (уменьшение значения)
Унарные (имеющие один операнд) операторы ++, -- увеличивают, уменьшают зна-
чение переменной соответственно (листинг 5.12).
Листинг 5.12
x++; // увеличивает значение x на единицу и возвращает старое значение x
++x; // увеличивает значение x на единицу и возвращает новое значение x
x-- ; // уменьшает значение x на единицу и возвращает старое значение x
--x ; // уменьшает значение x на единицу и возвращает новое значение x
5.3.6.2. += , -= , *= , /=
Короткий способ записи арифметических действий над переменной и одним опе-
рандом (листинг 5.13).
Листинг 5.13
x += y; // эквивалент записи x = x + y;
x -= y; // эквивалент записи x = x - y;
x *= y; // эквивалент записи x = x * y;
x /= y; // эквивалент записи x = x / y;
5.4. Данные
5.4.1. Типы данных
Компилятор Arduino определяет следующие типы данных:
boolean
;
char
;
byte
;
int
;
unsigned int
;
long
;
unsigned long
;
float
;
double
;
string
;
массив (array)
;
void
.
Рассмотрим типы данных более подробно.
Глава 5. Программирование в Arduino
55
5.4.1.1. boolean
Логический (булевый) тип данных —
boolean
. Может принимать одно из двух зна-
чений:
true
или
false
. Данные типа
boolean
занимают в памяти один байт.
5.4.1.2. char
Переменная типа
char
занимает 1 байт памяти и может хранить один алфавитно-
цифровой символ (литеру). При объявлении литеры используются одиночные ка-
вычки: 'A' (двойные кавычки используются при объявлении строки символов —
тип
string
: "ABC").
Символ хранится в памяти как число, соответствующее коду символа в таблице
кодировки символов ASCII. Так как символ хранится как число, в памяти над ним
возможно производить арифметические действия (например, 'A' + 1 будет 66, т. к.
ASCII код для 'A' — 65).
Тип
char
знаковый тип, т. е. число (код), хранящийся в памяти, может принимать
значения от –128 до 127. Если необходима знаковая однобайтовая переменная, ис-
пользуйте тип
byte
.
Пример:
char myChar = 'A';
char myChar = 65; // Варианты эквивалентны
5.4.1.3. byte
Хранит 8-битовое числовое значение без десятичной точки. Имеет диапазон от 0
до 255. Пример:
byte someVariable=150; // объявление переменной someVariable,
// имеющей тип byte
5.4.1.4. int
Тип данных
int
(от англ. integer — целое число) — один из наиболее часто исполь-
зуемых типов данных для хранения чисел
. int
занимает 2 байта памяти и может
хранить числа от –32 768 до 32 767.
Для размещения отрицательных значений
int
использует так называемый допол-
нительный код представления числа. Старший бит указывает на отрицательный
знак числа, остальные биты инвертируются с добавлением 1.
Arduino-компилятор сам заботится о размещении в памяти и представлении отри-
цательных чисел, поэтому арифметические действия над целыми числами произво-
дятся как обычно.
Когда переменная типа
int
вследствие арифметической операции достигает своего
максимального значения, она "перескакивает" на самое минимальное значение и
наоборот (листинг 5.14).
56
Do'stlaringiz bilan baham: |