Con*_*ion 6 python math timestamp bit-manipulation uniqueidentifier
我想生成64位长的int作为文档的唯一ID.
一种想法是将用户的ID(32位int)与Unix时间戳(另一个32位int)组合,以形成唯一的64位长整数.
缩小的例子是:
组合两个4位数字0010并0101形成8位数字00100101.
syk*_*ora 16
留在所述第二数量的比特数移位所述第一数目,然后添加(或按位或-取代+与|在以下实施例)第二个数字.
result = (user_id << 32) + timestamp
Run Code Online (Sandbox Code Playgroud)
关于缩小的例子,
>>> x = 0b0010
>>> y = 0b0101
>>> (x << 4) + y
37
>>> 0b00100101
37
>>>
Run Code Online (Sandbox Code Playgroud)
foo = <some int>
bar = <some int>
foobar = (foo << 32) + bar
Run Code Online (Sandbox Code Playgroud)