Difference between revisions of "Int64"

From Free Pascal wiki
Jump to navigationJump to search
(de-duplicate page contents, most information now present in Integer)
Tag: New redirect
 
Line 1: Line 1:
{{Int64}}
+
#REDIRECT [[Integer]]
 
 
'''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>\left\{n \in \mathbb{Z} \: \mid -\left(2^{63}\right) \leq n < 2^{63}\right\}</math>)
 
 
 
Memory requirement: 8 bytes that is 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:
 
 
 
<syntaxhighlight lang=pascal>
 
  var
 
    i64 : Int64;
 
</syntaxhighlight>
 
 
 
Examples of assigning valid values:
 
 
 
<syntaxhighlight lang=pascal>
 
    i64 := - 9223372036854775808;
 
    i64 := 0;
 
    i64 := 9223372036854775807;
 
</syntaxhighlight>
 
 
 
Examples of assigning invalid values:
 
 
 
<syntaxhighlight lang=pascal>
 
    i64 := '-9223372036854775808';
 
    i64 := '0';
 
    i64 := '9223372036854775807';
 
</syntaxhighlight>
 
 
 
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 Int64:
 
 
 
<syntaxhighlight lang=pascal>
 
...
 
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; 
 
</syntaxhighlight>
 
 
 
{{Data types}}
 

Latest revision as of 20:09, 6 November 2022

Redirect to: