- Библиотеки
- Операторы
- Sketch
- Управляющие операторы
- Синтаксис
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Указатели доступа
- Битовые операторы
- Составные операторы
- Данные
- Целочисленные константы
- Типы данных
- Преобразование типов данных
- Область видимости переменных и квалификаторы
- Утилиты
- Функции
- Цифровой ввод/вывод
- Аналоговый вход/выход
- Расширенный ввод/вывод
- Время
- Математические функции
- Тригонометрические функции
- Символы
- Случайные числа
- Биты и байты
- Внешние Прерывания
- Прерывания
- Функции передачи данных
- Функции
Целочисленные константы
Целочисленные константы — это числа используемые напрямую в коде скетча, без определения переменной для их хранения. По умолчанию такие константы трактуются как тип 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