У меня есть семафорная переменная с 5 состояниями.Как инвертировать эту формулу с оператором%
можно увеличить с помощью этого состояния Cicle
X = (X + 1) % 5
Для Х = {0, 1, 2, 3, 4} порождают {1, 2, 3, 4, 0}.
Но если я попытаюсь пойти в другом направлении, уменьшая состояние, не приносит правильный результат.
X = (X - 1) % 5
Для Х = {0, 1, 2, 3, 4} порождают {-1, 0, 1, 2, 3} InstEd из {4, 0, 1, 2, 3}
Например, в Excel, если вы пытаетесь =MOD(-1;5)
вы получаете 4.
В C# '%' возвращает остаток, а не модуль, поэтому я думаю, что всегда буду положительным. – Matt
@Matt: остальная часть отрицательного аргумента по-прежнему отрицательна. – joe
@Matt MOD в excel - это остаток, http://tipsforspreadsheets.com/microsoft_excel_2003_function_0019.html –