私が理解していることから(負の値を持つモジュロ演算子とモジュロ演算を参照) CおよびC++には「剰余」演算子a % b
がありますが、LHSが負の場合に実際にモジュラー演算を行う演算子はありません。
いくつかの言語にはそのような機能があります。C/C++ で効率的な関数を構築することは可能ですか (または i686/x64 CPU で効率的な方法はありませんか)?
現在、LHS 全体が非負であることをかなり確信できるように(n * b + a) % b
where is pick を使用していますが、必然的にコードが変更され、バグが発生することもあります。n
a + b % b = a % b
注: 明確でない場合、剰余算術とは、すべての整数a
とすべての正の整数に対してそのような演算子を意味しますb
。