Главная chevron_right Структура chevron_right Арифметические операторы chevron_right * (multiplication)

* (multiplication)

Оператор * умножает два операнда и возвращает их произведение — удобен для масштабирования, пересчёта единиц и геометрических вычислений.

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

Описание

Оператор * — это стандартное умножение: он принимает два операнда и возвращает их произведение. Используется во всех ситуациях, где нужно масштабировать значение, пересчитать единицы измерения или вычислить площадь, мощность, скорость и т. д.

Синтаксис

product = operand1 * operand2;

Параметры

  • product: переменная, в которую записывается результат. Допустимые типы данных: int, float, double, byte, short, long.
  • operand1: первый множитель — переменная или константа. Допустимые типы данных: int, float, double, byte, short, long.
  • operand2: второй множитель — переменная или константа. Допустимые типы данных: int, float, double, byte, short, long.

Пример кода

    int a = 5;
    int b = 10;
    int c = 0;
    c = a * b;  // переменная 'c' получает значение 50 после выполнения этого оператора

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

  • Масштабирование показаний сенсора — например, перевод «сырого» значения АЦП в реальные единицы (вольты, граммы, сантиметры).
  • Управление яркостью или скоростью — умножение базового значения на коэффициент для плавной регулировки.
  • Геометрические расчёты — вычисление площади, объёма или длины пути по формулам с несколькими переменными.
  • Временны́е интервалы — пересчёт секунд в миллисекунды или минут в секунды перед передачей в delay() или millis().

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

  1. Переполнение типа. Если произведение выходит за пределы диапазона типа данных переменной product, результат «обернётся» и станет некорректным. Для больших чисел используйте long или float вместо int.
  2. Автоматический переход к float. Если хотя бы один из операндов имеет тип float или double, всё выражение вычисляется в режиме плавающей запятой — это удобно для точных расчётов, но немного медленнее на платах без аппаратного FPU.
  3. Потеря дробной части. Если оба операнда float/double, а product объявлен как целочисленный тип (int, long и т. д.), дробная часть результата молча отбрасывается. Явное приведение типов поможет сделать намерение очевидным и избежать путаницы.
  4. Порядок вычислений. Умножение имеет более высокий приоритет, чем сложение и вычитание, но одинаковый с делением. Используйте скобки, если выражение сложное, — это делает код понятнее и предотвращает ошибки.
  5. Отладка через Serial Monitor. Если результат кажется неверным, выведите оба операнда и произведение отдельно: так сразу видно, на каком шаге происходит переполнение или потеря точности.
    float a = 5.5;
    float b = 6.6;
    int c = 0;
    c = a * b;  // переменная 'c' хранит значение 36, а не ожидаемый результат 36.3

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