ホームページ > バックエンド開発 > Golang > データベースストレージ用に uint64 ハッシュ出力を int64 に安全に変換する方法

データベースストレージ用に uint64 ハッシュ出力を int64 に安全に変換する方法

DDD
リリース: 2024-12-08 09:12:12
オリジナル
210 人が閲覧しました

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

ハッシュ関数出力用に uint64 を int64 に変換する

murmur2 などの uint64 値を返すハッシュ関数を操作し、結果を保存する場合BIGINT (int64) のみをサポートする PostgreSQL のようなデータベースでは、 uint64 から int64 へ。

解決策: 型変換

最も簡単な解決策は、型変換を使用することです。

i := uint64(0xffffffffffffffff)
i2 := int64(i)
ログイン後にコピー

この変換は次のように成功します。メモリ表現は変更されず、型のみが変更されます。結果の int64 値は、元の uint64 と同じバイナリ表現になります。

出力:

18446744073709551615 -1
ログイン後にコピー

補足:

型なしの整定数値を直接 int64 に変換すると、定数値が int64 の範囲に収まらない可能性があるため、コンパイル時にエラーが発生します。例:

i3 := int64(0xffffffffffffffff) // Compile time error!
ログイン後にコピー

これは、定数値 0xffffffffffffffff の精度が任意であり、int64 の最大値である 0x7ffffffffffffff を超えているためです。

以上がデータベースストレージ用に uint64 ハッシュ出力を int64 に安全に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート