АрифметикаПоМодулю

Материал из CoreWiki.

Перейти к: навигация, поиск

Суть в том что все числа загоняются в промежуток от 0 до модуль-1 включительно. Делается это посредством добавления или вычитания значения модуля нужное количество раз. Для положительных чисел это - то же самое что взятие остатка от деления.

Проще обьяснить на примере. Вот как выглядят действия в арифметике по модулю 5 : 1 + 1 = 2 2 + 2 = 4 4 + 1 = 0 ( 4 + 1 = 5 = 0 ) -1 = 4 ( 0 - 1 = 5 - 1 = 4 ) 4 + 4 = 3 ( 4 + 4 = 8 = 5 + 3 = 0 + 3 = 3) 2 - 4 = 3 ( 2 - 4 = -2 = 5 - 2 = 3 )

Компилятор делает все преобразования за вас, то есть если написано -1, в листинге после компиляции будет CORESIZE - 1. Единственно следует быть осторожным при сравнении. Например, 4 > 2 2 > 0 -1 > 0 ( -1 = 5 - 1 = 4 > 0 )

Не запутаться поможет простое правило - все числа положительные, ноль - минимальное число.


--Duke 14:04, 1 Сен 2005 (EDT) --yGREK 11:45, 1 Сен 2005 (EDT)

Личные инструменты