[fpc-devel] Extended($FFFFFFFFFFFFFFFF) = -1?
Hans-Peter Diettrich
DrDiettrich1 at aol.com
Mon Mar 3 21:44:03 CET 2014
Ewald schrieb:
> On 03 Mar 2014, at 12:49, Hans-Peter Diettrich wrote:
>> How (which data type) does *your* parser store untyped numerical
>> constants?
>
> Roughly like this (syntax may be a bit awry, but you get the point):
>
> TIntegerNumber = Record Case SignedNess: TSignedNess of snPositive:
> UValue: QWord; snNegative: SValue: Int64; End;
>
> The parser detects wether there is a `-` in front of the constant and
> stores the right sign in the SignedNess field.
A parser doesn't work like that - too many possible cases with unary
minus. If you need an datatype for integers with more bits than provided
by the compiler, you must roll your own datatype.
> Alright, let me rephrase my demands: - I want to store the value
> 18446744073709551615 in any kind of variable without loss of
> precision.
See above.
DoDi
More information about the fpc-devel
mailing list