我对 C# 中像 ulong 这样的故意溢出结构的性质有些困惑。
本质上,我正在研究一个我想成为 ulong.max X ulong.max 正方形的网格。如果我对坐标执行算术运算,我希望它自动环绕网格的另一侧。但是,似乎如果我将两个 ulong 相乘并导致溢出,我最终会得到零,而不是其他情况下的“模数(ulong.max)”。也许我误解了当我溢出 64 位 ulong 时应该发生什么。
任何有关为网格制作环绕坐标系以允许数字自动环绕的方法的帮助都会很棒。也许这是不可能的?
我正在输入“longs”并将它们按位转换为“ulongs”,最终得到如下坐标:
(-1,0) = (0xFFFFFFFF, 0x00000000)
(-2,0) = (0xFFFFFFFE, 0x00000000)
无论如何,有关制作完全环绕坐标网格的方法的任何指针都会有所帮助。也许我的大脑今天根本不工作,我错过了一些明显的东西,导致它在高 ulong 数字时失控。