首页 > 求一个10位userid生成算法

求一个10位userid生成算法

输入:短ID (i.e. 1-1000000)
输出:定长的10位数ID

要求:
1.短ID与长ID不要是线性关系,就是不能完全成正比或者完全成反比
2.如果用到二进制操作,考虑64位的系统
3.短ID必须对应到不同的长ID


加一个掩码即可

直接使用uint64_t类型表示长ID,设计一个uint64_t的掩码,和短ID做XOR运算,不一定是低位对齐XOR,也可以放在中间两个字节。
长ID是定长的十进制10位,那就把对应的二进制最大最小值算出来,用于设计掩码,即可解决。

【热门文章】
【热门文章】