Integer Melimpah Secara Sengaja untuk Storan PostgreSQL
Dalam konteks menyimpan nilai cincang uint64, yang melebihi saiz jenis data BIGINT PostgreSQL (ditandatangani 64 bit), penyelesaian biasa ialah menukar uint64 kepada int64 dengan hanya menukar jenis tanpa mengubah perwakilan binari.
Penyelesaian:
i := uint64(0xffffffffffffffff) i2 := int64(i)
Menggunakan penukaran jenis ini, nilai uint64 diperuntukkan kepada pembolehubah int64 sementara mengekalkan perwakilan binari asalnya. Ini mungkin kerana penukaran tidak mengubah perwakilan memori nilai, hanya jenisnya.
Output:
18446744073709551615 -1
Menukar uint64 kepada int64 sentiasa berjaya, tanpa mengira nilainya. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa menukar nilai pemalar integer yang tidak ditaip kepada int64 boleh mengakibatkan ralat masa kompilasi jika ia melebihi nilai maksimum yang boleh diwakili oleh int64 (0x7fffffffffffffff).
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyimpan Nilai Hash uint64 dalam BIGINT PostgreSQL Walaupun Had Saiz?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!