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))— функция вернёт количество байт.