char()

char() приводит любое значение к типу char — одному байту, который можно использовать как ASCII-символ или маленькое целое число.

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

Описание

char() преобразует произвольное значение к типу char. Тип char занимает один байт и может использоваться двояко: как символ (например, буква или цифра в ASCII) или как маленькое целое число. Какой смысл вкладывать — зависит от задачи.

Явное приведение через char() полезно, когда компилятор не может самостоятельно вывести нужный тип, или когда вы хотите подчеркнуть намерение в коде.

Синтаксис

  • char(x)
  • (char) x

Параметры

x: значение любого типа, которое нужно преобразовать.

Возвращает

Значение типа char.

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

  • Формирование строк и символьных массивов вручную: когда нужно записать конкретный символ по его ASCII-коду.
  • Передача одиночных символов через Serial.write() или другие коммуникационные функции.
  • Арифметика с символами: вычисление смещения от базовой буквы, например для шифрования.
  • Работа с символьными таблицами или протоколами, где данные кодируются как ASCII.

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

  • char(65) вернёт символ 'A': это прямое соответствие ASCII-таблице, где десятичное 65 — заглавная латинская «A».
  • На разных платформах char может быть знаковым (signed char, диапазон −128…127) или беззнаковым (unsigned char, диапазон 0…255). Стандарт C++ оставляет это на усмотрение реализации, поэтому поведение при значениях выше 127 может отличаться.
  • Если вам нужно хранить именно «сырой» байт без привязки к знаку, надёжнее явно использовать byte или uint8_t — их семантика однозначна на любой платформе.
  • При передаче числа, выходящего за диапазон char, произойдёт усечение: берётся только младший байт. Например, char(300) даст 44, потому что 300 % 256 = 44.
  • Если вы видите в Serial Monitor неожиданный символ вместо числа — скорее всего, переменная имеет тип char, и Serial.print() интерпретирует её как символ. Чтобы вывести числовое значение, приведите её к int.

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