मैं डेल्फी में एक निरंतर परिभाषित करने के लिए कोशिश कर रहा हूँ:इंट 64 निरंतर घोषित कैसे करें?
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;
सुधार
मेरे मौलिक धारणा गलत था।
चिपकाया जा रहा है 14695981039346656037
विंडोज 7 कैलक्यूलेटर में, और हेक्स में परिवर्तित करने, मुझे विश्वास है कि 14695981039346656037
की हेक्स बराबर 0x14650FB0739D0383
है का नेतृत्व किया:
यह गलत है।
तो जब मैं उच्च बिट के साथ एक 16 अंकीय हेक्स मान देखा, सेट नहीं, मैं इसे एक 64-बिट में फिट सकता प्रकल्पित पूर्णांक पर हस्ताक्षर किए।
असल में हेक्स समकक्ष 14695981039346656037
है ... कुछ और। रोब, तुम सही थे! (शायद)
आप की कोशिश की है: 'FNV_offset_basis = $ 14650FB0739D0383;' –
के संभावित डुप्लिकेट [कैसे Delphi7 में एक अहस्ताक्षरित 64-बिट पूर्णांक परिभाषित करने के लिए?] (Http://stackoverflow.com/questions/6378107/how-to-define -न-हस्ताक्षरित -64-बिट-पूर्णांक-इन-डेल्फी 7) – RRUZ
रिकॉर्ड के लिए: "FNV_offset_basis = 14695981039346656037" डेल्फी XE2 में काम करता है। – Giel