C#将两个Int值变为唯一值

将两个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

猜你喜欢

转载自blog.csdn.net/l100142548/article/details/80227289