IntegerConstants

Материал из MK90.ORG wiki
Перейти к: навигация, поиск

Справка Язык | Библиотеки | Сравнение | Изменения

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

Описание

Целые константы - это числа, напрямую вставляемые в текст скетча, например 123. По умолчанию, им сопоставляется тип Int, но это можно изменить суффиксом-модификатором U или L (см.ниже).

Также по умолчанию, целые константы трактуются как числа с основанием 10 (десятичные), но с помощью специальной записи (форматирования) можно записывать числа и в других системах исчисления:

  База                   Пример     Форматирование     Примечание
  
  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     // same as 101 decimal   ((1 * 10^2) + (0 * 10^1) + 1)

Двоичные константы имеют базу 2. Поэтому в их записи можно использовать только цифры 0 и 1.

Пример:

B101    // same as 5 decimal   ((1 * 2^2) + (0 * 2^1) + 1)

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

myInt = (B11001100 * 256) + B10101010;    // B11001100 будет старшим байтом

Восьмеричные числа имеют базу 8. Для записи используются цифры 0-7, а первой всегда указывается 0.

Пример:

0101    // same as 65 decimal   ((1 * 8^2) + (0 * 8^1) + 1)

Предупреждение

Легко создать труднонаходимую ошибку, случайно добавив незначащий лидирующий ноль в записи константы и заставив таким образом компилятор трактовать запись числа как восьмеричную.

Шестнадцатеричные имею базу 16. Допустимыми будут цифры от 0 до 9 и буквы от A до F; A соответствует десятичному 10, B - 11, и т.д. до F, которое равно 15. Запись шестнадцатеричного числа всегда начинаются с "0x". Буквы A-F также могут употребляться в нижнем регистре (a-f).

Пример:

0x101   // тоже самое, что и десятичное 257 decimal   ((1 * 16^2) + (0 * 16^1) + 1)

Суффиксы U и L

По умолчанию, целые константы трактуются как тип Int, с применением его диапазона значений. Чтобы изменить тип данных, закрепляемый за константой, в конце необходимо добавить суффикс:

  • 'u' или 'U' для объявления беззнаковых констант. Например 33u
  • 'l' или 'L' для объявления констант типа long. Например: 100000L
  • 'ul' или 'UL' для объявления беззнаковых констант типа long. Например: 32767ul

Смотри также

Руководство по Wiring


Исправления, пожелания и новые статьи должны быть опубликованы через Форум.

Оригинальные тексты руководств и переводы распространяются Arduino и MK90 на условиях лицензии Creative Commons Attribution-ShareAlike 3.0 License. Примеры исходных кодов и ссылки являются общественным достоянием.