Ich versuche, eine Konstante in Delphi zu definieren:Wie deklariert man eine Int64-Konstante?
const
FNV_offset_basis = 14695981039346656037;
Und ich den Fehler: Integer konstant zu groß
Note:
14,695,981,039,346,656,037
decimal is equal to0x14650FB0739D0383
hex.
Wie kann ich erklären, diese Int64
konstant?
einige andere Dinge, die ich versucht habe:
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;
Korrektur
Meine Grundannahme falsch war.
Einfügen 14695981039346656037
in Windows 7 Rechner, und Hex-Umwandlung, mich zu glauben, dass die Hex-Äquivalent 14695981039346656037
ist 0x14650FB0739D0383
:
Das ist falsch.
Also, wenn ich einen Wert 16-stellige Hex sah, mit dem hohen Bit nicht gesetzt, ich vermute es in einem 64-Bit passen könnte unterzeichnet integer.
In Wirklichkeit ist das Hexadezimaläquivalent von 14695981039346656037
... etwas anderes. Rob, du hattest Recht! (wahrscheinlich)
Haben Sie versucht: 'FNV_offset_basis = $ 14650FB0739D0383;' –
möglich Duplikat [Wie eine nicht signierte 64-Bit-Integer in Delphi7 definieren?] (Http://stackoverflow.com/questions/6378107/how-to-define -an-unsigned-64-bit-integer-in-delphi7) – RRUZ
Für den Datensatz: "FNV_offset_basis = 14695981039346656037" funktioniert in Delphi XE2. – Giel