sto cercando di definire una costante a Delfi:Come dichiarare una costante Int64?
const
FNV_offset_basis = 14695981039346656037;
e ottengo l'errore: costante intera troppo grande
Note:
14,695,981,039,346,656,037
decimal is equal to0x14650FB0739D0383
hex.
come posso dichiarare questo Int64
costante?
Alcune altre cose che ho provato:
const
FNV_offset_basis: Int64 = 14695981039346656037;
FNV_offset_basis = Int64(14695981039346656037);
FNV_offset_basis: Int64 = Int64(14695981039346656037);
var
offset: LARGE_INTEGER;
begin
//recalculate constant every function call
offset.LowPart = $739D0383;
offset.HighPart = $14650FB0;
Correzione
mio assunto fondamentale era sbagliato.
incollare 14695981039346656037
in Windows 7 Calcolatrice, e la conversione in esadecimale, mi ha portato a credere che l'equivalente esadecimale di 14695981039346656037
è 0x14650FB0739D0383
:
Questo non è corretto.
così quando ho visto un valore esadecimale a 16 cifre, con il bit alto non impostato, ho presunto che potrebbe andare bene in un 64-bit firmato intero.
In realtà l'equivalente esadecimale di 14695981039346656037
è ... qualcos'altro. Rob, avevi ragione! (probabilmente)
Hai provato: 'FNV_offset_basis = $ 14650FB0739D0383;' –
possibile duplicato di [Come definire un numero intero a 64 bit senza segno in Delphi7?] (Http://stackoverflow.com/questions/6378107/how-to-define -an-unsigned-64-bit-integer-in-delphi7) – RRUZ
Per la registrazione: "FNV_offset_basis = 14695981039346656037" funziona in Delphi XE2. – Giel