剰余演算
剰余演算（モジュロとも呼ぶ）は、コンピュータにおいて、ある数値を別の数値(法と呼ばれることもある)で除算し、余りを取得する演算である。2つの正の整数である、被除数a および 除数nが与えられる場合、a の n による剰余 (a modulo n、略して a mod nとも表記される)は、ユークリッド除法における a を n で除算した余りとなる。例えば、「5 mod 2」の結果は 1 となる。なぜなら、5を2で除算した場合商は2となり、余りは1となるからである。また、「9 mod 3」の結果は0となる。9を3で除算した商は3となり余りは0となる(言い方を変えれば9から3を3回引いた場合に残りがなくなる)からである。一般的な電卓を使用して除算を行う場合、商が小数点表記で出力されるため、剰余演算は直接行えないことに注意する。
通常の場合、a と n はともに整数で処理されるが、多くのコンピュータシステムでは他の数値型でも処理が可能である。整数 n の剰余の取りうる範囲は、0から n - 1 までである。「n mod 1」 の場合常に0となる。「n mod 0」 の場合は未定義であり、プログラミング言語によっては「0除算」エラーを結果とする。a または n が負数の場合については、単純な定義はなく、プログラミング言語によってどのように定義されるかが異なっている。
数論における古典的な関連事項については合同算術を参照。
ありがちなミス
被除数の符号に剰余の結果が依存する場合、意外な失敗を引き起こすことがある。
例えば、ある整数が奇数であるかチェックしたい場合、下記のC++での例のように、2 で除算した余りが 1 であるかどうかを確かめればよいようにみえる。
bool is_odd(int n) {
    return n % 2 == 1;}
しかし、使用するプログラミング言語が、剰余の符号を被除数に依存させている場合、これは正しくない。なぜなら、n が負の奇数の場合、n % 2 は -1 となるため、この関数はfalseを返す。
正しい実装のひとつは、0 でないかどうかをチェックすることである。剰余が0であれば符号を気にする必要はない。
bool is_odd(int n) {
    return n % 2 != 0;}
もちろん、どのような奇数も、剰余は 1 または -1 となるため、下記のような実装もできる。
bool is_odd(int n) {
    return n % 2 == 1 || n % 2 == -1;}