Maison > développement back-end > Golang > Comment puis-je stocker les valeurs de hachage uint64 dans BIGINT de PostgreSQL malgré les limitations de taille ?

Comment puis-je stocker les valeurs de hachage uint64 dans BIGINT de PostgreSQL malgré les limitations de taille ?

DDD
Libérer: 2024-12-01 01:57:10
original
995 Les gens l'ont consulté

How Can I Store uint64 Hash Values in PostgreSQL's BIGINT Despite Size Limitations?

Débordement intentionnel d'entiers pour le stockage PostgreSQL

Dans le contexte du stockage des valeurs de hachage uint64, qui dépassent la taille du type de données BIGINT de PostgreSQL (signé 64 bits), une solution courante consiste à convertir le uint64 en int64 en changeant simplement le tapez sans altérer la représentation binaire.

Solution :

i := uint64(0xffffffffffffffff)
i2 := int64(i)
Copier après la connexion

En utilisant cette conversion de type, la valeur uint64 est affectée à une variable int64 tout en conservant sa représentation binaire d'origine . Ceci est possible car la conversion ne change pas la représentation en mémoire de la valeur, seulement son type.

Sortie :

18446744073709551615 -1
Copier après la connexion

La conversion d'un uint64 en int64 est toujours réussi, quelle que soit la valeur. Cependant, il est important de noter que la conversion d'une valeur constante entière non typée en int64 peut entraîner une erreur de compilation si elle dépasse la valeur maximale pouvant être représentée par int64 (0x7fffffffffffffff).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal