如何在 php 中将 3 个或更多 ID 合并为 1 个 64 位 ID

How to merge 3 or more ids into 1 64bit id in php

使用位移位,很容易对2个id做如下:

$id1 = 125;
$id2 = 23;
$mergedid = ($id1 << 8) + $id2

然后获取每个id:

$id1 = $mergedid >> 8;
$id2 = $mergedid & 0xFF;

谁知道3个或更多id怎么办?

合并

$mergedid = ($id1 << 24) + ($id2 << 16) + ($id3 << 8) + ($id4 << 0)

提取

$id1 = ($mergedid >> 24) & 0xFF;
$id2 = ($mergedid >> 16) & 0xFF;
$id3 = ($mergedid >>  8) & 0xFF;
$id4 = ($mergedid >>  0) & 0xFF;

我知道左移和右移 0 没有任何作用。我刚刚包含它是为了向您展示模式