PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Usando ruby ​​para converter inteiros não assinados armazenados como assinados de volta ao valor original


Não tenho certeza dos detalhes do Ruby, mas essencialmente você precisa adicionar 2^64 se o número for negativo. Isso supondo que o número seja armazenado como complemento de 2, o que quase certamente é.

FYI, o sistema de complemento de 2, essencialmente trata um número (digamos) de 32 bits como um número mod 2^32. Isso significa que -1 é a mesma coisa que 2^32 - 1 ou 0xFFFFFFFF. Isso acaba sendo muito simples de usar em nível de hardware.