Arduino:Справочник языка Arduino/Константы/Целочисленные константы

Материал из ВикиСправочника
Перейти к: навигация, поиск

{{#setlogo:ArduinoCommunityLogo.png}}

Проверка/Оформление/Редактирование: Мякишев Е.А.


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

Целочисленные константы — это числа используемые напрямую в коде скетча, без определения переменной для их хранения. По умолчанию такие константы трактуются как тип 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   // то же, что десятичное 257   ((1 * 16^2) + (0 * 16^1) + 1)

U и L директивы

По умолчанию целочисленные константы относятся компилятором к типу int. Чтобы заставить компилятор использовать другой тип данных, используются следующие директивы.

'u' или 'U'

Для беззнакового целочисленного числа.

Пример

33u

'l' или 'L'

Для long типа данных.

Пример

100000L

'ul' или 'UL'

Для беззнакового числа long типа данных.

Пример

32767ul

См.также

Внешние ссылки