Acu*_*nus -1 python integer bit-manipulation uniqueidentifier
我想将两个可能具有不同最大位长的大整数编码为一个整数。第一个整数是有符号的(可以是负数),而第二个是无符号的(总是非负数)。如果位长度分别为m和n,则返回整数的位长度应小于或等于m + n。
只是n(但不是m)是预先已知的,并且是固定的。作为示例,将使用该解决方案将61+位的带符号纳秒时间戳与256位的无符号随机性相结合,以形成带符号的317+位唯一标识符。
我正在使用最新的Python。有一个相关的预先存在的问题,在特殊情况下()m == n解决此问题。
由于Ñ是固定的,这个问题很简单:编码(一个,b)作为一个 •2 Ñ + b。
如果m和n不固定,则该问题是不可能的,因为它要求我们将(两位a,一位b)和(一位a,两位b)编码为三位,这意味着我们必须编码十二种可能性(0,0),(0,1),(0,2),(0,3),(1,0),(1,1),(1,2),(1,3 ),(2,0),(2,1),(3,0)和(3,1)的三位八种组合,这是不可能的。