@artanets

Почему arduino не может умножить дальше пятизначного числа?

Столкнулся с тем, что при результате вычислений числовой переменной более чем из пятизначного числа arduino начинает выдавать неправильный результат.
У него 1000*10=10000 (вроде правильно)
А уже 1000*100= -31072

Вот код, которым я умножал:
int _ABVAR_1_varname;

void setup()
{
_ABVAR_1_varname = 0;
Serial.begin(9600);
}

void loop()
{
_ABVAR_1_varname = ( 1000 * 100 ) ;
Serial.print( _ABVAR_1_varname );
Serial.println("");
}
  • Вопрос задан
  • 3451 просмотр
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Потому что int на ней -- 16-битный, и может принимать только значения от -32768 до 32767. Замени int на long, а 1000 * 100 на 1000l * 100l и будет тебе (временное) счастье.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@gabirx
или на unsigned long
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы