Int64

From Free Pascal wiki
Revision as of 08:12, 20 April 2022 by Paskal (talk | contribs)
Jump to navigationJump to search

Deutsch (de) English (en) français (fr) русский (ru)

int64 is an integer type that is represented with 64bit. It's range of values: -9,223,372,036,854,775,808 .. 9,223,372,036,854,775,807 (that is [math]\displaystyle{ \left\{n \in \mathbb{Z} \: \mid -\left(2^{63}\right) \leq n \lt 2^{63}\right\} }[/math])

Memory requirement: 8 bytes or 64 bits

A data field of the Int64 data type can only take integer values ​​with and without sign. Assigning other values ​​leads to compiler error messages when the program is compiled and the compilation process is aborted. That is, the executable program is not created.

Definition of a data field of type Int64:

  var 
    i64 : Int64;

Examples of assigning valid values:

    i64 := - 9223372036854775808;
    i64 := 0;
    i64 := 9223372036854775807;

Examples of assigning invalid values:

    i64 := '-9223372036854775808';
    i64 := '0';
    i64 := '9223372036854775807';

The difference between the two examples is that the upper example is the assignment of literals of the type Integer, while the assignment of the lower example is literals of the type String.

Example of converting from raw data to double:

...
type
...
  ByteArray8 = array [0..7] of byte;
...
function RawToInt64(aByteArray8: ByteArray8; IntelEndiannes: boolean=false): Int64;
begin
  if IntelEndiannes
    then Result:= PInt64(@aByteArray8)^
    else Result:= SwapEndian(PInt64(@aByteArray8)^);
end;


navigation bar: data types
simple data types

boolean byte cardinal char currency double dword extended int8 int16 int32 int64 integer longint real shortint single smallint pointer qword word

complex data types

array class object record set string shortstring