byte()
Функция byte() приводит значение любого типа к беззнаковому 8-битному целому (диапазон 0–255), отбрасывая лишние биты и дробную часть.
Полная статья
Описание
byte() приводит переданное значение к типу byte — беззнаковому 8-битному целому. В Arduino это означает диапазон от 0 до 255.
Функция полезна, когда нужно явно обозначить намерение: работать именно с байтом, а не с int или другим типом. Это особенно важно при формировании пакетов данных, заполнении буферов или передаче по последовательным интерфейсам.
Синтаксис
byte(x)(byte) x
Параметры
x: значение любого типа — целое, число с плавающей точкой, символ и т. д.
Возвращает
Значение типа byte.
Как читать результат
Если исходное значение укладывается в диапазон от 0 до 255, преобразование проходит без потерь. Если же число больше 255, функция сохраняет только младшие 8 бит, а остальное отбрасывается. Например, число 256 превратится в 0, а 257 — в 1. Это стандартное поведение усечения, а не ошибка.
Если исходное значение — число с плавающей точкой, дробная часть отбрасывается ещё до усечения по диапазону, то есть сначала происходит округление к нулю, затем — взятие младших 8 бит.
Практические замечания
- При работе с числами, которые заведомо больше
255, результат может оказаться неожиданным — всегда проверяйте диапазон входных данных. byte()удобно использовать при работе с бинарными протоколами, буферами и массивами байтов.- Явное преобразование делает код понятнее: читатель сразу видит, что вы намеренно работаете с 8-битным значением, а не допустили случайное сужение типа.
- Если нужно преобразовать отрицательное число, помните: тип
byteбеззнаковый, поэтому, например, -1 превратится в 255. - При отладке удобно выводить результат через
Serial.print()— это поможет убедиться, что усечение произошло именно так, как ожидалось.