próbuję definiować stałe w Delphi:Jak zadeklarować stałą Int64?
const
FNV_offset_basis = 14695981039346656037;
i pojawia się błąd: Integer stały zbyt duży
Note:
14,695,981,039,346,656,037
decimal is equal to0x14650FB0739D0383
hex.
Jak mogę zadeklarować ten Int64
stałej?
kilka innych rzeczy Próbowałem:
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;
Korekta
Moim podstawowym założeniem było źle.
wklejanie 14695981039346656037
do Windows 7 Kalkulator i konwersji na hex, doprowadziły mnie do przekonania, że ekwiwalent szesnastkowy 14695981039346656037
jest 0x14650FB0739D0383
:
który jest nieprawidłowy. kiedy
Więc ja zobaczyłem 16-cyfrowy wartość hex, z wysokim kawałka nie ustawić, ja domniemywać mogło zmieścić się w 64-bitowym podpisał całkowitą.
W rzeczywistości heksadecymalny odpowiednik 14695981039346656037
to ... coś innego. Rob, miałeś rację! (prawdopodobnie)
Czy próbowałeś: 'FNV_offset_basis = $ 14650FB0739D0383;' –
możliwy duplikat [Jak zdefiniować niepodpisaną 64-bitową liczbę całkowitą w Delphi7?] (Http://stackoverflow.com/questions/6378107/how-to-define -an-unsigned-64-bit-integer-in-delphi7) – RRUZ
Dla zapisu: "FNV_offset_basis = 14695981039346656037" działa w Delphi XE2. – Giel