私はDelphiで定数を定義しようとしている:Int64定数の宣言方法は?
const
FNV_offset_basis = 14695981039346656037;
を、私はエラーを取得:整数定数が大きすぎ
Note:
14,695,981,039,346,656,037
decimal is equal to0x14650FB0739D0383
hex.
は、どのように私はこのInt64
定数を宣言することができますか?
私が試したいくつかの他のもの:
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;
修正
を私の基本的な前提が間違っていました。
Windows 7の電卓に貼り付ける14695981039346656037
、および進への変換、14695981039346656037
の六角相当0x14650FB0739D0383
であることを信じるように私を導いた:間違ってい
を。
だから、ときに私はに設定されていない高ビットで、16桁の16進値を見て、私はそれが64ビットに合うことができると推定符号付き整数。
実際には、14695981039346656037
の16進数は...何か他のものです。ロブ、あなたは正しかった! (おそらく)
は、あなたがしようとしたがいる: 'FNV_offset_basis = $ 14650FB0739D0383;の' –
可能複製(http://stackoverflow.com/questions/6378107/how-to-define [Delphi7の符号なし64ビット整数を定義する方法?] -an-unsigned-64-bit-integer-delphi7) – RRUZ
レコードの場合: "FNV_offset_basis = 14695981039346656037"はDelphi XE2で動作します。 – Giel