C# の ulong のような意図的にオーバーフローする構造の性質について、私は多少混乱しています。
基本的に、私は ulong.max X ulong.max の正方形になりたいグリッドに取り組んでいます。座標に対して算術演算を実行すると、グリッドの反対側に自動的にラップされます。ただし、2 つの ulong を掛け合わせてオーバーフローが発生した場合は、そうでない場合の "modulus(ulong.max)" の代わりにゼロになってしまうようです。64 ビットの ulong をオーバーフローさせたときに何が起こるかを誤解しているのかもしれません。
数値を自動的にラップできるグリッドのラップ座標系を作成する方法についてのヘルプは素晴らしいでしょう。多分これは不可能ですか?
「long」を入力して、ビットごとに「ulong」に変換すると、次のような座標になります。
(-1,0) = (0xFFFFFFFF, 0x00000000)
(-2,0) = (0xFFFFFFFE, 0x00000000)
とにかく、完全にラッピングされた座標グリッドを作成する方法についての指針は役に立ちます。たぶん、私の脳は今日は単に機能していないだけで、ulong の数値が高いと脳が混乱する原因となっている明らかな何かを見逃しているのかもしれません。