如何从这个功能获得具体价值?

时间:2017-09-26 08:10:08

标签: python

我读到了这个: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

1 个答案:

答案 0 :(得分:1)

要获得t,只需右移撤消左移。

def get_t(id):
    return id >> 23

要获得u,请使用最右边23位设置的位掩码

def get_u(id):
    return id & 0x7fffff