首頁 > 後端開發 > Golang > 如何安全地將 uint64 哈希輸出轉換為 int64 以進行資料庫儲存?

如何安全地將 uint64 哈希輸出轉換為 int64 以進行資料庫儲存?

DDD
發布: 2024-12-08 09:12:12
原創
222 人瀏覽過

How to Safely Convert a uint64 Hash Output to an int64 for Database Storage?

將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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板