如何在 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 没有任何作用。我刚刚包含它是为了向您展示模式
使用位移位,很容易对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 没有任何作用。我刚刚包含它是为了向您展示模式