將uint64 轉換為int64 以進行雜湊函數輸出
使用返回uint64 值的雜湊函數(例如murmur2)並儲存結果時在像PostgreSQL 這樣只支援BIGINT (int64) 的資料庫中,有必要將uint64 到int64。
解決方案:型別轉換
最簡單的解決方案是使用型別轉換:
i := uint64(0xffffffffffffffff) i2 := int64(i)
此轉換成功為它不會改變記憶體表示,只會改變型別。產生的 int64 值將具有與原始 uint64 相同的二進位表示形式。
輸出:
18446744073709551615 -1
附加說明:
將無型別整型常數值會導致編譯時間增加錯誤,因為常數值可能不適合int64 的範圍。例如:
i3 := int64(0xffffffffffffffff) // Compile time error!
這是因為常數值 0xffffffffffffffff 具有任意精度,超過了 int64 的最大值,即 0x7ffffffffffffffffff。
以上是如何安全地將 uint64 哈希輸出轉換為 int64 以進行資料庫儲存?的詳細內容。更多資訊請關注PHP中文網其他相關文章!