2011-02-08 3 views

ответ

3

Вот как работает мода в целом для отрицательных чисел в программировании (на всех языках, в которых я это пробовал).
Но вы можете легко сделать число положительным, прежде чем делать моды

nextY = (y + 20 - 1) % 20; 
+0

gotchya, больной просто сделать это. – wbarksdale

1

Modulo операторы часто возвращают отрицательные числа для отрицательных входов. Например, C# даст вам номер от -356..359 для выражения x % 360.

Вместо вычитания 1, а затем принимать по модулю 20, вы можете добавить 19, что то же самое, но сохраняет число положительное, или вы можете использовать тройной оператор:

nextY = (y+19) % 20; // or 
nextY = (nextY == 0) ? 19 : nextY - 1; 
Смежные вопросы