В Arduino 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