Умножение целых чисел (на Arduino и не только)

При умножении на Arduino необходимо помнить о размерах переменных в которые мы записываем результат вычислений.

Так, например, на Arduino UNO переменная int — двух байтовая и может принимать значения от -2^15 до 2^15 (-32 768 до 32 767).
Поэтому, если мы используем переменную размер которой не может превышать заданного диапазона, то результат умножения, записанный в эту переменную будет не предсказуемый.

Для расширения диапазона вычислений необходимо пользоваться переменными большего размера

Unsigned int — двух байтовая беззнаковая с диапазоном от 0 до 65 535
Long — четырех байтовая с диапазоном от -2 147 483 648 до 2 147 483 647
Unsigned long — четырех байтовая беззнаковая с диапазоном от 0 до 4 294 967 295

unsigned long val;

val=1000L*10000L;

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *