Почему я получаю отрицательное число при добавлении двух целых чисел, сумма которых> 32k? - PullRequest
0 голосов
/ 16 октября 2019

У меня есть вопрос, который кажется очень простым, но я думаю, что есть что-то в Обрабатывающем, что я не лажу. Проблема в том, что когда я добавляю два целых числа вместе, а окончательная сумма составляет> 32 КБ, сумма становится отрицательной.

Похоже на проблему переполнения, за исключением того, что ссылка Обработка сообщает

"Тип данных для целых чисел, чисел без десятичной точки. Целые числа могут быть как 2 147 483 647, так и не более 2 147 483 648. "

Вот код ошибки и вывод последовательного монитора:

int start_millis = millis();
int end_millis = start_millis + 5000;

Serial.println(start_millis);
Serial.println("");
Serial.println(end_millis);

А вывод монитора:

!---Motion Detected; Flicker starting ---!
17616
22616
!--- Flicker Over ---!

!---Motion Detected; Flicker starting ---!
22986
27986
!--- Flicker Over ---!

!---Motion Detected; Flicker starting ---!
29569
-30967
...