Описание
В Uno и других платах на базе микроконтроллеров ATmega, переменные типа unsigned int (беззнаковые целые) схожи с int-переменными тем, что они содержат двухбайтовые значения. Отличие состоит в том, что вместо отрицательных чисел они могут хранить только положительные значения в удобном диапазоне от 0 до 65535 ((2^16)-1).
В Arduino Due такие переменные занимают 4 байта (32 бита), что позволяет хранить значения в диапазоне от 0 до 4 294 967 295 (2^32 — 1).
Разница между беззнаковыми (unsigned int) и знаковыми (int) целыми числами заключается в том, как интерпретируется их старший бит (иногда называемый «знаковым битом»). В Ардуино переменные типа int (знаковые) обрабатываются следующим образом: если старший бит — «1», то число интерпретируется как отрицательное, а остальные 15 бит интерпретируются согласно принципам дополнительного кода.
Пример
unsigned int ledPin = 13;
Синтаксис
unsigned int var = val;
- var — имя переменной типа unsigned int
- val — значение, присваиваемое этой переменной
Подсказка
В ситуациях, когда значение переменной стремится превысить свой максимум, оно сбрасывается в минимальное значение, причем данный принцип работает в оба направления.
unsigned int x
x = 0;
x = x - 1; // x теперь содержит 65535 - произошел сброс в отрицательном направлении
x = x + 1; // в результате сброса x теперь содержит 0