将两个Int值变为唯一值
//代码实现
public static long HashToLong(int n1, int n2)
{
long ret = n1;
ret <<= 32;
ret += n2;
return ret;
}
运行结果:
输入n1=1,n2=11 结果:4294967307
输入n1=11,n2=1 结果:47244640257
然而在某些情况下我们认为输入的n1和n2是具有同等价值的因此我们修改代码
//代码实现
public static long HashToLong(int n1, int n2)
{
long ret = Mathf.Min(n1, n2);
ret <<= 32;
ret += Mathf.Max(n1, n2);
return ret;
}
运行结果:
输入n1=1,n2=11 结果:4294967307
输入n1=11,n2=1 结果:4294967307