Умножение на Ардуино целых чисел.

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

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

Пример использования:

1
2
3
unsigned long val;
 
val=1000L*10000L;
unsigned long val;

val=1000L*10000L;

Источник http://arduino.cc/en/Reference/HomePage

Добавить комментарий