Ошибка вычислений Arduino

Тема в разделе "Arduino & Shields", создана пользователем Arnoobino, 12 июн 2017.

  1. Arnoobino

    Arnoobino Нерд

    Друзья, есть Arduino UNO r3, пытаюсь поиграться со временем, считаю количество секунд в дне 24*60*60 калькулятор выдаёт 86400, а в программе фигурирует 20864. Не могу понять причину ошибки
    Код банальный
    Код (C++):
    unsigned long secsInDay=(24*3600);
    void setup() {
      Serial.begin(9600);
    }
    void loop() {
      Serial.print(secsInDay);
      Serial.print("\n");
      Serial.print(24*3600);
      Serial.print("\n");
      delay(1000);
      }

    ЧЯДНТ,
     
  2. rkit

    rkit Гуру

    int переполнился.
    Почитайте про числовые типы в C++.
     
  3. Arnoobino

    Arnoobino Нерд

    unsigned long не подходит?
     
  4. rkit

    rkit Гуру

    Подходит
     
  5. Arnoobino

    Arnoobino Нерд

    По вашему int и long одно и тоже?

    Достаточно было просто написать в конце 24*3600UL
     
  6. rkit

    rkit Гуру

    По-моему нет. И когда вы просто заменили int на unsigned long - все заработало, так что не знаю, чего вы взяли.
     
  7. Arnoobino

    Arnoobino Нерд

    Прочтите внимательно моё первое и второе сообщение.
    Где там хоть одно упоминание int'a?

    [​IMG]
     
  8. rkit

    rkit Гуру

    Я ж писал - прочитайте про типы. Всё прочитайте, а не один абзац.
    Вот эта строчка считает int.
     
  9. Arnoobino

    Arnoobino Нерд

    Где была замена и где это заработало?
     
  10. rkit

    rkit Гуру

    Вы издеваетесь, что ли?
     
  11. Arnoobino

    Arnoobino Нерд

    Знаете, есть хорошая фраза - кто ясно мыслит, тот ясно излагает. Вот она не про вас.
    Если вам лень отвечать на вопрос, ну проходите мимо, никто же не обязывает, а если хотите помочь, то уж помогайте.
    Ответ, который нашёлся вы могли бы дать в первом вашем сообщении, а не путать читающих эту тему.
     
  12. rkit

    rkit Гуру

    Я попытался помочь. Четко определил проблему. Четко указал, где искать ответ. Вы не стали разбираться. а решили поидеваться. Больше помогать не буду.
     
  13. Arnoobino

    Arnoobino Нерд

    Удивительно, что я и написал ответ, который вы могли бы дать сразу. Или не могли, если не знали, что выглядит вероятнее всего.
    Поймите, форум существует не для того, чтобы "чётко" отсылать людей куда-то, а для того, чтобы другие пользователи, столкнувшиеся с похожей проблемой, могли найти ответ в уже существующих темах.
    За сим, прошу закрывать эту тему.
     
  14. rkit

    rkit Гуру

    Ответ - нужно работаться в языке, на котором вы пытаетесь писать. тыкнуть "UL" как обезьяна без понимания - это не ответ. это медвежья услуга. В форумах миллионы ответов с UL, ни один из которых вы не нашли.