Целочисленные константы

Целочисленные константы — это числа используемые напрямую в коде скетча, без определения переменной для их хранения. По умолчанию такие константы трактуются как тип 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.

Разработка проектов