byte()

Функция byte() приводит значение любого типа к беззнаковому 8-битному целому (диапазон 0255), отбрасывая лишние биты и дробную часть.

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

Описание

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() — это поможет убедиться, что усечение произошло именно так, как ожидалось.

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