NLV*_*NLV 13 c# uniqueidentifier
考虑我有两个数字1023232和44.我想生成一个代表这个数字组合的唯一数字.我该如何生成它?
需求
f(x,y)= f(y,x)和f(x,y)对于每个(x,y)或(y,x)是唯一的
Bot*_*000 13
如果这是两个整数,你可以这样做:
ulong F(int x, int y) {
ulong id = x > y ? (uint)y | ((ulong)x << 32) :
(uint)x | ((ulong)y << 32);
return id;
}
Run Code Online (Sandbox Code Playgroud)
如果需要为给定大小的两个变量生成一个真正唯一的值,则需要大约每个变量大小的两倍.(好吧,现在f(x,y)== f(y,x)有点少)
您也可以通过反转相同的操作来恢复原始值.
| 归档时间: |
|
| 查看次数: |
7658 次 |
| 最近记录: |