Arduino:Справочник языка Arduino/Константы/Целочисленные константы
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Целочисленные константы
Целочисленные константы — это числа используемые напрямую в коде скетча, без определения переменной для их хранения. По умолчанию такие константы трактуются как тип 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
См.также
Внешние ссылки