[fpc-devel] Extended($FFFFFFFFFFFFFFFF) = -1?
DrDiettrich1 at aol.com
Sat Mar 1 03:06:34 CET 2014
> On 28 Feb 2014, at 20:39, Jonas Maebe wrote:
>> All hexadecimal constants are (conceptually) parsed as int64, so
>> this is by design. int64($00000000ffffffff) is not -1.
> By the way, what do you do when you want to port fpc to a one's
> comlement machine (if they still exist)?
Numerical constants, where the sign matters, should only be encoded in
decimal. The other formats (hex,oct,bin...) are intended for use with
binary values, where the bit pattern is important. Then the code
compiles correctly on any kind of machine.
Assumptions about type sizes and encodings can make *application* code
unportable. E.g. the Extended type doesn't have a guaranteed size and
binary representation, IIRC it's equivalent to Double on x64.
More information about the fpc-devel