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

Целочисленные константы - это числа, которые используются непосредственно в скетче, например 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

Десятичная система (основание 10)

Это математика здравого смысла, с которой вы знакомы. Если у константы нет других префиксов, то предполагается, что константа в десятичном формате.

Пример кода:

n = 101; // Эквивалентно 101 в десятичной системе ((1 * 10^2) + (0 * 10^1) + 1)

Двоичная система (основание 2)

Допустимы только символы 0 и 1.

Пример кода:

n = B101; // Эквивалентно цифре 5 в десятичной системе ((1 * 2^2) + (0 * 2^1) + 1)

Двоичный форматер работает только с байтами (8 бит) между 0 (B0) и 255 (B11111111). Если нужно использовать int (16 бит) в двоичном виде, вы можете сделать это в два этапа, например:

myInt = (B11001100 * 256) + B10101010; // B11001100 - это старший байт

Восьмеричная система (основание 8)

Допустимы только символы от 0 до 7. Восьмеричные значения обозначаются префиксом «0» (ноль).

Пример кода:

n = 0101; // Эквивалентно числу 65 в десятичной системе ((1 * 8^2) + (0 * 8^1) + 1)

Вы можете сгенерировать трудно обнаруживаемую ошибку, (непреднамеренно) включив начальный ноль перед константой и заставив компилятор непреднамеренно интерпретировать вашу константу как восьмеричную.

Шестнадцатеричная система (основание 16)

Допустимые символы от 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