6

戻り値の型が ulong の Math.Abs​​(ulong,ulong) を探しています。しかし、Microsoft は long や int などに対してのみ実装しているようです。それを行う別の高速な方法はありますか?

申し訳ありませんが、修正する必要があります:

Math.Abs(ulong - ulong)

そのため、負になる可能性があり、ロングの範囲外になる可能性があります。

4

2 に答える 2

14

unsigned long 値は符号を含まないため、常に正です。そのため、 にMath.Absは意味がありませんulong


新しい質問が与えられた場合、次を使用できます。

ulong difference = first > second ? first-second : second-first;

これにより、2 つの値の差が得られます。これは、2 つの値が符号付きであるかのように減算して得られる結果の絶対値です。

于 2012-09-03T20:38:28.270 に答える
1

範囲外にならないようにするには、次のようなものが必要だと思います。

a > b ? a-b : b-a
于 2012-09-03T20:41:58.840 に答える