System.Math.DivRem

2021/09/02に公開

Math.DivRem というメソッドがあります。

除算をした時に商と剰余の両方が必要な場合は少なからずあるのですが、除算は四則演算の中では重い計算です。
速度が重要な時にはいかに除算を省いて乗算や減算に置き換えるかというのが腕の見せ所だったりすることもあるのですが、このメソッドを使うと商と剰余の両方が一度に得られます。
これで二回の除算を一回に圧縮することができてスピードアップが図れるはずです。

さて、どのように実装されているのかソースを見てみましょう。

math.cs

public static int DivRem(int a, int b, out int result) {
    result =  a%b;
    return a/b;
}
 
public static long DivRem(long a, long b, out long result) {
    result =  a%b;
    return a/b;
}

嘘つき!
こんなのわざわざ呼び出さなくても自分でやるわ!

執筆日: 2018/03/23

GitHubで編集を提案

Discussion