我想在坐標中有一個矩形,并使用 X、Y、W、H 來表示它。
是否可以使用四個數字(X:102,Y:45,W:13,H:55)來決定一個唯一ID,ID應該是uint256,然后我可以使用唯一ID來檢索( X:102,Y:45,W:13,H:55)和(X,Y,W,H)最大數量為10000。
有什么公式或演算法可以參考嗎?謝謝。
uj5u.com熱心網友回復:
uint256 表示“256 位的無符號整數 = 32 位元組”
它的范圍為0 to 2^256 - 1,足以存盤 4 個最大大小為 10000 的有序數。
即使你直接(字串)連接(XYWH),你得到的最大數字是:10000100001000010000,它是 20 位,因此可以很容易地存盤在(小于)64 位中。因此,有一種(最基本且效率最低的)方法,即使這也遠低于您想要的。盡管很難取回這些值。
因此,您可以為每個數字提供 2 個位元組(16 位)然后連接。這將(總是)采用 64 位表示,并且很容易檢索,因為您知道 (X,Y,W,H) 中的每一個都以 16 位表示。
您可以通過為每個值分配 14 位(不是您需要的)并具有 56 位表示來進一步優化它。
uj5u.com熱心網友回復:
一種簡單有效的方法是將 16 位(C 短)表示的四個數字打包為單個 64 位整數(C 聯合)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/417247.html
標籤:
上一篇:生成概率為p的隨機圖
