Определить четность/нечетность числа.

Тема в разделе "WASM.ZEN", создана пользователем _Juicy, 27 янв 2011.

  1. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Black_mirror
    Да вот не для всех, похоже. Моя студия по крайней мере показывает следующее:
    Код (Text):
    1. unsigned long long i = 0x20000000000002;
    2. double a = i;
    3. double b = a + 1;
    4. printf("%f %f", a, b);
    На выходе:
    9007199254740994.000000 9007199254740996.000000
     
  2. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    l_inc
    Значит придётся шаманить с округлением.
     
  3. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Black_mirror
    Да ну Вы что? Просто проверять, не превышает ли число 2^53. Дальше они всё равно все чётные.
    Ну и не стоит забывать, что приоритет & ниже приоритета == . :derisive:
     
  4. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    l_inc
    Печально, если округление идёт к бесконечности можно конечно проверять числа на нечётность, то есть ксорить x и (x-1), правда в этом случае отдельное сравнение придётся делать не только для нуля, но и для единицы.
    А нелогичность приоритета операций в Си меня опять удивила, вот где куча лишних скобочек, а не в Lisp'e как думают некоторые.
     
  5. jabocrack

    jabocrack New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    96
    Black_mirror
    __int64 m=__int64(x1)^__int64(x); // C++
     
  6. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Зачем округление? У Вас классный вариант. Ну пара дополнительных проверок: на неравенство нулю и принадлежность интервалу от -2^53 до +2^53.
    [offtop]Недавно наткнулся на Ваш старый bmp-фрактал на фасме. Был под таким впечатлением, что побежал показывать первому попавшемуся, кем оказалась мама. Её скептическая реакция на мою восторженную рожу: "Ну укроп, и шо?"[/offtop]
     
  7. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Squash
    Может все проще - раз речь идет о первом курсе, то вначале изучили работу с целыми, в т.ч. и определение их четности по Odd(), mod и and. Затем перешли к вещественным, узнали о Round, Trunc, Frac и т.п. Отсюда и эта "притянутая за уши" задачка по использованию Frac

    PS: А вообще для помощи в решении "школьных" задачек по паскалю есть спец-форумы, например раздел Pscal на forum.sources.ru