word

Тип word хранит беззнаковое целое от 0 до 65535 (минимум 16 бит) — удобен для счётчиков, адресов и данных 16-битных датчиков.

Полная статья

Описание

Тип word предназначен для хранения беззнаковых целых чисел. Он занимает не менее 16 бит и позволяет работать с числами в диапазоне от 0 до 65535. На большинстве плат Arduino (Uno, Nano, Mega) word эквивалентен unsigned int и занимает ровно 2 байта. На платах с 32-разрядным процессором (например, Arduino Due или платах на базе SAMD) unsigned int может быть шире, но word по-прежнему гарантирует минимум 16 бит.

Если вам нужно хранить только неотрицательные числа и диапазон до 65535 достаточен, word — удобный и читаемый выбор. Для отрицательных чисел используйте int, а для больших значений — unsigned long.

Синтаксис

word var = val;

Параметры

  • var: имя переменной, которую вы объявляете
  • val: начальное значение, присваиваемое переменной; должно находиться в диапазоне 0–65535

Пример кода

    word w = 10000;

Где применяется

  • Счётчики событий, которые не могут быть отрицательными и не превысят 65535 (например, количество оборотов, импульсов, нажатий кнопки).
  • Хранение сырых данных от 16-битных датчиков (АЦП, дальномеры, датчики давления).
  • Работа с адресами и смещениями в протоколах передачи данных, где значение заведомо беззнаковое.
  • Временные метки и интервалы, если вы уверены, что они укладываются в 16 бит.

Практические замечания

  • Если присвоить переменной типа word значение больше 65535, произойдёт переполнение: число «обернётся» и вы получите неожиданный результат. Например, 65536 превратится в 0.
  • При арифметических операциях с двумя переменными word промежуточный результат тоже вычисляется как word, поэтому переполнение может возникнуть и внутри выражения. Чтобы этого избежать, приведите один из операндов к unsigned long перед умножением или сложением.
  • Тип word и unsigned int на большинстве плат Arduino взаимозаменяемы, но word делает намерение явным: вы работаете именно с 16-битным беззнаковым значением.
  • Проверить текущий размер типа на вашей плате можно через Serial.println(sizeof(word)) — функция вернёт количество байт.

Полезные материалы