PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Utilisation de ruby ​​pour convertir des entiers non signés stockés comme signés à la valeur d'origine

Je ne suis pas sûr des spécificités de Ruby, mais vous devez essentiellement ajouter 2 ^ 64 si le nombre est négatif. Cela suppose que le nombre est stocké en tant que complément à 2, ce qui est presque certainement le cas.

Pour votre information, le système de complément à 2 traite essentiellement un nombre (disons) de 32 bits comme un nombre mod 2 ^ 32. Cela signifie que -1 est la même chose que 2^32 - 1 ou 0xFFFFFFFF. Cela s'avère très simple à utiliser au niveau matériel.