Konvertieren von uint64 in int64 für die Hash-Funktionsausgabe
Beim Arbeiten mit Hash-Funktionen, die uint64-Werte zurückgeben, wie z. B. murmur2, und beim Speichern des Ergebnisses In einer Datenbank wie PostgreSQL, die nur BIGINT (int64) unterstützt, ist es notwendig, uint64 in ein zu konvertieren int64.
Lösung: Typkonvertierung
Die einfachste Lösung ist die Verwendung einer Typkonvertierung:
i := uint64(0xffffffffffffffff) i2 := int64(i)
Diese Konvertierung ist so erfolgreich, wie sie ist. Die Speicherdarstellung wird nicht geändert, nur der Typ. Der resultierende int64-Wert hat die gleiche binäre Darstellung wie der ursprüngliche uint64.
Ausgabe:
18446744073709551615 -1
Zusätzlicher Hinweis:
Das Konvertieren eines untypisierten ganzzahligen Konstantenwerts direkt in int64 kann zu einem Fehler bei der Kompilierung führen, da dies bei dem konstanten Wert möglicherweise nicht der Fall ist passen in den Bereich von int64. Zum Beispiel:
i3 := int64(0xffffffffffffffff) // Compile time error!
Dies liegt daran, dass der konstante Wert 0xfffffffffffffff eine willkürliche Genauigkeit hat und den Maximalwert von int64 überschreitet, der 0x7ffffffffffffffff ist.
Das obige ist der detaillierte Inhalt vonWie konvertiert man eine uint64-Hash-Ausgabe sicher in eine int64-Ausgabe für die Datenbankspeicherung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!