Целочисленные константы - это числа, которые используются непосредственно в скетче, например 123. По умолчанию эти числа обрабатываются как int, но вы можете изменить это с помощью модификаторов U и L .
Обычно целочисленные константы обрабатываются как целые числа в десятичной системе исчисления, но для перевода чисел в другие основания могут использоваться специальные обозначения (форматеры).
Основание | Пример | Форметер | Комментарий |
10 | 123 | - | |
2 | B1111011 | B |
работает только с 8-битными значениями (от 0 до 255) символов 0 и 1 действительны |
8 | 0173 | 0 | допустимы только цифры 0-7 |
16 | 0x7B | 0x | допустимы только цифры 0-9 и буквы A-F, a-f |
Это математика здравого смысла, с которой вы знакомы. Если у константы нет других префиксов, то предполагается, что константа в десятичном формате.
n = 101; // Эквивалентно 101 в десятичной системе ((1 * 10^2) + (0 * 10^1) + 1)
Допустимы только символы 0 и 1.
n = B101; // Эквивалентно цифре 5 в десятичной системе ((1 * 2^2) + (0 * 2^1) + 1)
Двоичный форматер работает только с байтами (8 бит) между 0 (B0) и 255 (B11111111). Если нужно использовать int (16 бит) в двоичном виде, вы можете сделать это в два этапа, например:
myInt = (B11001100 * 256) + B10101010; // B11001100 - это старший байт
Допустимы только символы от 0 до 7. Восьмеричные значения обозначаются префиксом «0» (ноль).
n = 0101; // Эквивалентно числу 65 в десятичной системе ((1 * 8^2) + (0 * 8^1) + 1)
Вы можете сгенерировать трудно обнаруживаемую ошибку, (непреднамеренно) включив начальный ноль перед константой и заставив компилятор непреднамеренно интерпретировать вашу константу как восьмеричную.
Допустимые символы от 0 до 9 и буквы от A до F; A имеет значение 10, B равно 11, вплоть до F, что равно 15. Шестнадцатеричные значения обозначаются префиксом «0x». Обратите внимание, что AF может быть прописным (AF) или строчным (af).
n = 0x101; // Эквивалентно числу 257 в десятичной системе ((1 * 16^2) + (0 * 16^1) + 1)
U и L форматеры.
По умолчанию целочисленная константа обрабатывается как int с сопутствующими ограничениями в значениях. Чтобы указать целочисленную константу с другим типом данных, добавьте:
'U' или 'U', чтобы перевести константу в тип unsigned. Пример: 33u
'l' или 'L', чтобы перевести константу в тип long. Пример: 100000L
'ul' или 'UL', чтобы перевести константу в тип unsigned long. Пример: 32767ul