XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
MicroElf

offline
Опыт: 4,288
Активность:
Определение четности/нечетности числа
Из уроков программирования я помню, что четность или нечетность числа можно проверить узнав его остаток от деления на 2. Если остаток равен нулю, значит четное, если единице, значит нечетное.
Вопрос: Как в ГУИ можно найти остаток от деления одного числа на другое (нигде не нашел такой операции).
Заранее благодарен.
Старый 04.10.2008, 11:40
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Математика - Modulo
Подходит только для целых чисел. Для вещественных нужно заюзать конверсию.
Либо сооруди конструкцию вида:
number1 - ((number1 / number2) * number2)
Старый 04.10.2008, 11:52
akkolt

offline
Опыт: 13,826
Активность:
максимально большое число какое?

akkolt добавил:
можно циклом делить это число на 2, и завершать цикл после того, как число станет == 1, если после множества делений оно таковым не стало, завершать цикл, и отправлять число в не четные.
Старый 04.10.2008, 12:12
MicroElf

offline
Опыт: 4,288
Активность:
akkolt
Как-то коряво выглядит:-)
ShadoW DaemoN
У меня целые числа. Спасибо.
Старый 04.10.2008, 12:17
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
Из уроков программирования я помню, что четность или нечетность числа можно проверить узнав его остаток от деления на 2


если это было в уроках не о жассе - то засунь их в одно место, ибо бред) в идеале проверка на четность дб через

Код:
and    eax,    01h


в жассе тем более никакие модулы не нужны, зарубите это на носу!

Код:
if i*0x80000000==0x00 then
 //
 else
 //
 endif


т.е. если четное число умножить на 0x80000000 то мы получим 0 (в противном случае если оно нечетное мы получим 0x80000000) это куда проще и нагладнее чем сравнивать остаток от деления

для гуишников напомню что число 0x80000000 равно 2^31 или -2 147 483 648 (можете писать так)

ADOLF добавил:
это работает и для четных и для нечетных чисел кста)

ADOLF добавил:
Цитата:
можно циклом делить это число на 2, и завершать цикл после того, как число станет == 1, если после множества делений оно таковым не стало, завершать цикл, и отправлять число в не четные.

так делать нистоит ни вкоем случае (ну разве что вы хотите стать гомнокодером года xD)

ADOLF добавил:
Цитата:
Наиболее верное решение для гаишников

rofl!

ADOLF добавил:
короче юзать мой вариант и не взерошивать бабушку чВ)

Отредактировано ADOLF, 05.10.2008 в 19:42.
Старый 05.10.2008, 13:29
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 14:56.