основыкнигиwin/dos*nixготовоелирикагостиФОРУМПОИСК
Б.В. Керниган, Д.М. Ричи -- Язык C

2.5. Арифметические операции

      Бинарными арифметическими операциями являются +, -, *, / и операция деления по модулю %. Имеется унарная операция -, но не существует унарной операции +.
      При делении целых дробная часть отбрасывается. Выражение

  X % Y

дает остаток от деления X на Y и, следовательно, равно нулю, когда х делится на Y точно. Например, год является високосным, если он делится на 4, но не делится на 100, исключая то, что делящиеся на 400 годы тоже являются високосными. Поэтому

 IF(YEAR % 4 == 0 && YEAR % 100 != 0 \!\! YEAR % 400 == 0)
     год високосный
 ELSE
     год невисокосный

      Операцию % нельзя использовать с типами FLOAT или DOUBLE.
      Операции + и - имеют одинаковое старшинство, которое младше одинакового уровня старшинства операций *, / и %, которые в свою очередь младше унарного минуса. Арифметические операции группируются слева направо. (Сведения о старшинстве и ассоциативности всех операций собраны в таблице в конце этой главы). Порядок выполнения ассоциативных и коммутативных операций типа + и - не фиксируется; компилятор может перегруппировывать даже заключенные в круглые скобки выражения, связанные такими операциями. таким образом, а+(B+C) может быть вычислено как (A+B)+C. Это редко приводит к какому-либо расхождению, но если необходимо обеспечить строго определенный порядок, то нужно использовать явные промежуточные переменные.
      Действия, предпринимаемые при переполнении и антипереполнении (т.е. При получении слишком маленького по абсолютной величине числа), зависят от используемой машины.

ПРЕДЫДУЩАЯ ЧАСТЬ
2.4. Описания
СОДЕРЖАНИЕ СЛЕДУЮЩАЯ ЧАСТЬ
2.6. Операции отношения и логические операции