@detcelfer

Как работает остаток от деления (%) с переменными типа int?

Бесконечный цикл.
Код меняет значение pin от 0 до 9 каждые 120мс.
void loop() {
unsigned long int ms = millis();
int pin =  (ms / 120) % 10;
}

Код работает правильно, но я не могу понять принцип его работы. Буду рад, если "разжуёте". Как работает данный код с переменными int? Как будет отличаться от работы с другим типом переменных (к примеру нецелочисленных)?
  • Вопрос задан
  • 454 просмотра
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
int pin = (ms / 120) % 10;
Как работает данный код с переменными int?

Делит ms на 120 (так что результат равен 0 в период [0..120[ мс, 1 в период [120..240[ мс. итд), а потом берёт остаток от деления результата на 10 (так, что результат меняется циклически в пределах [0..10[ ).

Как будет отличаться от работы с другим типом переменных (к примеру нецелочисленных)?

Никак. Встроенный оператор % работает только с целыми числами.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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