I\'m using the hash function murmur2
which returns me an uint64
.
I want then to store it in PostgreSQL, which only support BIGINT
You can simply use a type conversion:
i := uint64(0xffffffffffffffff)
i2 := int64(i)
fmt.Println(i, i2)
Output:
18446744073709551615 -1
Converting uint64
to int64
always succeeds: it doesn't change the memory representation just the type. What may confuse you is if you try to convert an untyped integer constant value to int64
:
i3 := int64(0xffffffffffffffff) // Compile time error!
This is a compile time error as the constant value 0xffffffffffffffff
(which is represented with arbitrary precision) does not fit into int64
because the max value that fits into int64
is 0x7fffffffffffffff
:
constant 18446744073709551615 overflows int64