Целочисленные константы — это числа используемые напрямую в коде скетча, без определения переменной для их хранения. По умолчанию такие константы трактуются как тип int, но это может быть изменено модификаторами U и L (см. ниже).
Обычно такие константы считаются десятичными целыми числами, но специальные префиксы позволяют изменить базис.
Основание системы |
Пример |
Префикс |
Комментарий |
10 (десятичная) |
123 |
нет |
разрешенные знаки 0-9 |
2 (двоичная) |
B1111011 |
в начале "B" |
только для 8-битных значений (0-255), разрешенные знаки 0 и 1 |
8 (восьмеричная) |
0173 |
в начале "0" |
разрешенные знаки 0-7 |
16 (шестнадцатиричная) |
0x7B |
в начале "0x" |
разрешенные знаки 0-9, A-F, a-f |
Основание десятичной системы счисления - 10. Математические операции с такими числами всем знакомы. Константы без каких-либо префиксов считаются десятичными.
Пример
101 // то же, что и 101 в десятичной системе ((1 * 10^2) + (0 * 10^1) + 1)
Основание двоичной системы счисления - 2. Для записи чисел в этой системе используются только 0 и 1.
Пример
B101 // то же, что и 5 в десятичной системе ((1 * 2^2) + (0 * 2^1) + 1)
Префикс двоичной системы может использоваться только с числами размерностью 1 байт (8 бит) в диапазоне от 0 (B0) до 255 (B11111111). Для записи числа типа int (16 бит) в двоичном формате можно использовать двойную операцию:
myInt = (B11001100 * 256) + B10101010;
Основание восьмеричной системы счисления - 8. Для записи чисел в этой системе используются только цифры в диапазоне от 0 до 7. Восьмеричные числа характеризуются префиксом "0".
Пример
0101 // то же, что и 65 в десятичной системе ((1 * 8^2) + (0 * 8^1) + 1)
Внимание! Можно допустить труднонаходимую ошибку, если нечаянно дописать 0 перед константой, поскольку в этом случае последняя будет интерпретироваться компилятором как восьмеричное число.
Основание шестнадцатеричной системы счисления - 16. Для записи чисел в этой системе используются цифры от 0 до 9, а также буквы от A до F; при этом A имеет значение 10, B - 11, и т.д. до F, которое эквивалентно 15. Шестнадцатиричные значения характеризуются префиксом "0x". Обратите внимание, что A-F могут вводится как в верхнем, так и нижнем регистрах (a-f).
Пример
0x101 // то же, что и 257 в десятичной системе ((1 * 16^2) + (0 * 16^1) + 1)
Модификаторы U и L
По умолчанию, целочисленные константы интерпретируются как целые числа типа int с соответствующими предельными значениями. Чтобы задать целочисленной константе другой тип, запишите после нее:
- 'u' или 'U' для беззнакового целочисленного числа. Пример: 33u
- 'l' или 'L' для long типа данных. Пример: 100000L
- 'ul' или 'UL', чтобы привести константу к типу unsigned long. Например: 32767ul
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/IntegerConstants |