Module Int64
: sigend
64-bit integers.
This module provides operations on the type int64 of signed 64-bit integers. Unlike the built-in int
type, the type int64 is guaranteed to be exactly 64-bit wide on all platforms. All arithmetic operations
over int64 are taken modulo 2^64
Performance notice: values of type int64 occupy more memory space than values of type int , and
arithmetic operations on int64 are generally slower than those on int . Use int64 only when the
application requires exact 64-bit arithmetic.
Literals for 64-bit integers are suffixed by L:
letzero:int64=0Lletone:int64=1Lletm_one:int64=-1Lvalzero : int64
The 64-bit integer 0.
valone : int64
The 64-bit integer 1.
valminus_one : int64
The 64-bit integer -1.
valneg : int64->int64
Unary negation.
valadd : int64->int64->int64
Addition.
valsub : int64->int64->int64
Subtraction.
valmul : int64->int64->int64
Multiplication.
valdiv : int64->int64->int64
Integer division.
RaisesDivision_by_zero if the second argument is zero. This division rounds the real quotient of its
arguments towards zero, as specified for (/) .
valunsigned_div : int64->int64->int64
Same as Int64.div , except that arguments and result are interpreted as unsigned 64-bit integers.
Since 4.08
valrem : int64->int64->int64
Integer remainder. If y is not zero, the result of Int64.remxy satisfies the following property: x=Int64.add(Int64.mul(Int64.divxy)y)(Int64.remxy) . If y=0 , Int64.remxy raises
Division_by_zero .
valunsigned_rem : int64->int64->int64
Same as Int64.rem , except that arguments and result are interpreted as unsigned 64-bit integers.
Since 4.08
valsucc : int64->int64
Successor. Int64.succx is Int64.addxInt64.one .
valpred : int64->int64
Predecessor. Int64.predx is Int64.subxInt64.one .
valabs : int64->int64absx is the absolute value of x . On min_int this is min_int itself and thus remains negative.
valmax_int : int64
The greatest representable 64-bit integer, 2^63 - 1.
valmin_int : int64
The smallest representable 64-bit integer, -2^63.
vallogand : int64->int64->int64
Bitwise logical and.
vallogor : int64->int64->int64
Bitwise logical or.
vallogxor : int64->int64->int64
Bitwise logical exclusive or.
vallognot : int64->int64
Bitwise logical negation.
valshift_left : int64->int->int64Int64.shift_leftxy shifts x to the left by y bits. The result is unspecified if y<0 or y>=64 .
valshift_right : int64->int->int64Int64.shift_rightxy shifts x to the right by y bits. This is an arithmetic shift: the sign bit of x is
replicated and inserted in the vacated bits. The result is unspecified if y<0 or y>=64 .
valshift_right_logical : int64->int->int64Int64.shift_right_logicalxy shifts x to the right by y bits. This is a logical shift: zeroes are
inserted in the vacated bits regardless of the sign of x . The result is unspecified if y<0 or y>=64
.
valof_int : int->int64
Convert the given integer (type int ) to a 64-bit integer (type int64 ).
valto_int : int64->int
Convert the given 64-bit integer (type int64 ) to an integer (type int ). On 64-bit platforms, the
64-bit integer is taken modulo 2^63, i.e. the high-order bit is lost during the conversion. On 32-bit
platforms, the 64-bit integer is taken modulo 2^31, i.e. the top 33 bits are lost during the conversion.
valunsigned_to_int : int64->intoption
Same as Int64.to_int , but interprets the argument as an unsigned integer. Returns None if the unsigned
value of the argument cannot fit into an int .
Since 4.08
valof_float : float->int64
Convert the given floating-point number to a 64-bit integer, discarding the fractional part (truncate
towards 0). If the truncated floating-point number is outside the range [ Int64.min_int , Int64.max_int
], no exception is raised, and an unspecified, platform-dependent integer is returned.
valto_float : int64->float
Convert the given 64-bit integer to a floating-point number.
valof_int32 : int32->int64
Convert the given 32-bit integer (type int32 ) to a 64-bit integer (type int64 ).
valto_int32 : int64->int32
Convert the given 64-bit integer (type int64 ) to a 32-bit integer (type int32 ). The 64-bit integer is
taken modulo 2^32, i.e. the top 32 bits are lost during the conversion.
valof_nativeint : nativeint->int64
Convert the given native integer (type nativeint ) to a 64-bit integer (type int64 ).
valto_nativeint : int64->nativeint
Convert the given 64-bit integer (type int64 ) to a native integer. On 32-bit platforms, the 64-bit
integer is taken modulo 2^32. On 64-bit platforms, the conversion is exact.
valof_string : string->int64
Convert the given string to a 64-bit integer. The string is read in decimal (by default, or if the
string begins with 0u ) or in hexadecimal, octal or binary if the string begins with 0x , 0o or 0b
respectively.
The 0u prefix reads the input as an unsigned integer in the range [0,2*Int64.max_int+1] . If the input
exceeds Int64.max_int it is converted to the signed integer Int64.min_int+input-Int64.max_int-1 .
The _ (underscore) character can appear anywhere in the string and is ignored.
RaisesFailure if the given string is not a valid representation of an integer, or if the integer
represented exceeds the range of integers representable in type int64 .
valof_string_opt : string->int64option
Same as of_string , but return None instead of raising.
Since 4.05
valto_string : int64->string
Return the string representation of its argument, in decimal.
valbits_of_float : float->int64
Return the internal representation of the given float according to the IEEE 754 floating-point 'double
format' bit layout. Bit 63 of the result represents the sign of the float; bits 62 to 52 represent the
(biased) exponent; bits 51 to 0 represent the mantissa.
valfloat_of_bits : int64->float
Return the floating-point number whose internal representation, according to the IEEE 754 floating-point
'double format' bit layout, is the given int64 .
typet = int64
An alias for the type of 64-bit integers.
valcompare : t->t->int
The comparison function for 64-bit integers, with the same specification as compare . Along with the
type t , this function compare allows the module Int64 to be passed as argument to the functors Set.Make
and Map.Make .
valunsigned_compare : t->t->int
Same as Int64.compare , except that arguments are interpreted as unsigned 64-bit integers.
Since 4.08
valequal : t->t->bool
The equal function for int64s.
Since 4.03
valmin : t->t->t
Return the smaller of the two arguments.
Since 4.13
valmax : t->t->t
Return the greater of the two arguments.
Since 4.13
valseeded_hash : int->t->int
A seeded hash function for 64-bit ints, with the same output value as Hashtbl.seeded_hash . This function
allows this module to be passed as argument to the functor Hashtbl.MakeSeeded .
Since 5.1
valhash : t->int
An unseeded hash function for 64-bit ints, with the same output value as Hashtbl.hash . This function
allows this module to be passed as argument to the functor Hashtbl.Make .
Since 5.1
OCamldoc 2025-06-12 Int64(3o)