我读到了这个:https://stackoverflow.com/a/37605582/6426449
START_TIME = a constant that represents a unix timestamp
def make_id():
t = int(time.time()*1000) - START_TIME
u = random.SystemRandom().getrandbits(23)
id = (t << 23 ) | u
return id
def reverse_id(id):
t = id >> 23
return t + START_TIME
从上面的def,如何获得t
的{{1}}和u
(从id
生成的内容)
喜欢
def make_id
答案 0 :(得分:1)
要获得t
,只需右移撤消左移。
def get_t(id):
return id >> 23
要获得u
,请使用最右边23位设置的位掩码
def get_u(id):
return id & 0x7fffff