Целочисленные константы
Целочисленные константы — это числа используемые напрямую в коде скетча, без определения переменной для их хранения. По умолчанию такие константы трактуются как тип int, но это может быть изменено директивами U и L (см. ниже)
Обычно такие константы считаются десятичными целыми числами, но специальные директивы позволяют задать отличный базис.
Базис
|
Пример
|
Директива
|
Комментарий
|
10 (decimal- десятеричный
|
123
|
нет
|
|
2 ( binary - двоичный)
|
B1110111
|
первая B
|
только для 8-бит значений (0-255), разрешенные знаки 0 и 1
|
8 (octal)
|
073
|
первая "0"
|
разрешенные знаки 0-7
|
16(hexadecimal)
|
0x7B
|
первые "0x"
|
разрешенные знаки 0-9, A-F, a-f
|
Decimal (десятичные) базис 10. Наиболее распространен. Константы без префиксов (директив) по умолчанию считаются десятичными
Пример:
101 // 101 десятичные ((1 * 10^2) + (0 * 10^1) + 1)
Binary (двоичный или бинарный) базис 2. Только 0 и 1 разрешены для записи.
Пример:
B101 // тоже что 5 десятичных ((1 * 2^2) + (0 * 2^1) + 1)
Использование двоичного формата допускается только с 8-битными числами, принимающими значение от 0 (B0) до 255(B11111111). Если необходимо задать значение 16-битного целого )int бинарными константами, то это может быть сделано в два шага:
myInt = (B11001100 * 256) + B10101010;
Octal — базис 8. Допустимы 0-7. Форматирующий префикс "0".
Пример:
0101 // то же, что десятичное 65 ((1 * 8^2) + (0 * 8^1) + 1)
Внимание! Включение "0" перед константой по ошибке может привести к очень сложно-диагностируемой ошибке, из-за того, что компилятор будет считать константу в восьмеричной системе.
Hexadecimal (or hex) базис 16. Допустимы знаки 0-9, A-F и a-f. A — это десятеричное 10, B — 11, и т.д до F — 15. Предваряющий "0x" используется как форматирующая директива.
Пример:
0x101 // same as 257 decimal ((1 * 16^2) + (0 * 16^1) + 1)
U и L директивы.
По умолчанию целочисленные константы относятся компилятором к типу int. Чтобы заставить компилятор использовать другой тип данных, используются следующие директивы.
- 'u' или 'U' для беззнакового целочисленного числа. Пример:
33u
- 'l' или 'L' для long типа данных. Пример:
100000L
- 'ul' или 'UL' для беззнакового числа long типа данных. Пример:
32767ul
Вернуться в справочник Arduino.