Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menukar Output Hash uint64 dengan selamat kepada int64 untuk Penyimpanan Pangkalan Data?

Bagaimana untuk Menukar Output Hash uint64 dengan selamat kepada int64 untuk Penyimpanan Pangkalan Data?

DDD
Lepaskan: 2024-12-08 09:12:12
asal
237 orang telah melayarinya

How to Safely Convert a uint64 Hash Output to an int64 for Database Storage?

Menukar uint64 kepada int64 untuk Output Fungsi Hash

Apabila bekerja dengan fungsi cincang yang mengembalikan nilai uint64, seperti murmur2 dan menyimpan hasilnya dalam pangkalan data seperti PostgreSQL yang hanya menyokong BIGINT (int64), ia perlu tukar uint64 kepada int64.

Penyelesaian: Penukaran Jenis

Penyelesaian paling mudah ialah menggunakan penukaran jenis:

i := uint64(0xffffffffffffffff)
i2 := int64(i)
Salin selepas log masuk

Penukaran ini berjaya kerana ia tidak mengubah perwakilan memori, hanya jenisnya. Nilai int64 yang terhasil akan mempunyai perwakilan binari yang sama seperti uint64 asal.

Output:

18446744073709551615 -1
Salin selepas log masuk

Nota Tambahan:

Menukar nilai pemalar integer yang tidak ditaip terus kepada int64 boleh menghasilkan masa penyusunan ralat, kerana nilai malar mungkin tidak sesuai dengan julat int64. Contohnya:

i3 := int64(0xffffffffffffffff) // Compile time error!
Salin selepas log masuk

Ini kerana nilai malar 0xffffffffffffffff mempunyai ketepatan sewenang-wenangnya dan melebihi nilai maksimum int64, iaitu 0x7fffffffffffffff.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Output Hash uint64 dengan selamat kepada int64 untuk Penyimpanan Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan