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

Целочисленные константы в коде - это набираемые числа, например, 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. Математические операции с такими числами всем знакомы. Константы без каких-либо префиксов считаются десятичными.

Пример:

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;    // B11001100 - старший байт


Основание восьмеричной системы счисления - 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 и собственно есть время для творчества, мы приглашаем всех желающих стать авторами статей публикуемых на нашем портале. Это могут быть как уроки, так и рассказы о ваших экспериментах с Arduino. Описание различных датчиков и модулей. Советы и наставления начинающим. Пишите и размещайте свои статьи в соответсвующей ветке форума.

Последние комментарии