Module CCInt64
Int64
Helpers for 64-bit integers
- since
- 0.13
include module type of sig ... end
val neg : int64 -> int64
val add : int64 -> int64 -> int64
val sub : int64 -> int64 -> int64
val mul : int64 -> int64 -> int64
val div : int64 -> int64 -> int64
val unsigned_rem : int64 -> int64 -> int64
val succ : int64 -> int64
val pred : int64 -> int64
val abs : int64 -> int64
val max_int : int64
val min_int : int64
val logand : int64 -> int64 -> int64
val logor : int64 -> int64 -> int64
val logxor : int64 -> int64 -> int64
val shift_left : int64 -> int -> int64
val shift_right : int64 -> int -> int64
val shift_right_logical : int64 -> int -> int64
val of_int : int -> int64
val to_int : int64 -> int
val (/) : t -> t -> t
Integer division. Raise
Division_by_zero
if the second argument is zero. This division rounds the real quotient of its arguments towards zero, as specified forPervasives
.(/).
val max_int : t
The greatest representable 64-bit integer, 263 - 1 =
9_223_372_036_854_775_807
.
val min_int : t
The smallest representable 64-bit integer, -263 =
-9_223_372_036_854_775_808
.
val (lsl) : t -> int -> t
x lsl y
shiftsx
to the left byy
bits, filling in with zeroes. The result is unspecified ify < 0
ory >= 64
.
val (lsr) : t -> int -> t
x lsr y
shiftsx
to the right byy
bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign ofx
. The result is unspecified ify < 0
ory >= 64
.
val (asr) : t -> int -> t
x asr y
shiftsx
to the right byy
bits. This is an arithmetic shift: the sign bit ofx
is replicated and inserted in the vacated bits. The result is unspecified ify < 0
ory >= 64
.
module Infix : sig ... end
Infix operators
include module type of Infix
val (+) : t -> t -> t
val (-) : t -> t -> t
val (~-) : t -> t
val (*) : t -> t -> t
val (/) : t -> t -> t
val (mod) : t -> t -> t
val (land) : t -> t -> t
val (lor) : t -> t -> t
val (lxor) : t -> t -> t
val (lnot) : t -> t
val (lsl) : t -> int -> t
val (lsr) : t -> int -> t
val (asr) : t -> int -> t
val (=) : t -> t -> bool
val (<>) : t -> t -> bool
val (>) : t -> t -> bool
val (>=) : t -> t -> bool
val (<=) : t -> t -> bool
val (<) : t -> t -> bool
val compare : t -> t -> int
The comparison function for 64-bit integers, with the same specification as
Pervasives
.compare. Along with the typet
, this functioncompare
allows the moduleCCInt64
to be passed as argument to the functorsSet
.Make andMap
.Make.
val hash : t -> int
Like
Pervasives
.abs (to_int x).
Conversion
val to_int : t -> int
Convert the given 64-bit integer (type
int64
) to an integer (typeint
). On 64-bit platforms, the 64-bit integer is taken modulo 263, i.e. the high-order bit is lost during the conversion. On 32-bit platforms, the 64-bit integer is taken modulo 231, i.e. the top 33 bits are lost during the conversion.
val of_int : int -> t
Alias to
Int64
.of_int. NOTE: used to return an option, but the function actually never fails.
val of_int_exn : int -> t
Alias to
Int64
.of_int.- deprecated
since 2.1, use
Int64
.of_int instead.
val to_int32 : t -> int32
Convert the given 64-bit integer (type
int64
) to a 32-bit integer (typeint32
). The 64-bit integer is taken modulo 232, i.e. the top 32 bits are lost during the conversion.
val of_int32 : int32 -> t
Alias to
Int64
.of_int32. NOTE: use to return an option, but the function actually never fails.
val of_int32_exn : int32 -> t
Alias to
Int64
.of_int32.- deprecated
since 2.1, use
Int64
.of_int32 instead.
val to_nativeint : t -> nativeint
Convert the given 64-bit integer (type
int64
) to a native integer. On 32-bit platforms, the 64-bit integer is taken modulo 232. On 64-bit platforms, the conversion is exact.
val of_nativeint : nativeint -> t
Alias to
Int64
.of_nativeint. NOTE: use to return an option, but the function actually never fails.
val of_nativeint_exn : nativeint -> t
Alias to
Int64
.of_nativeint.- deprecated
since 2.1, use
Int64
.of_nativeint instead.
val to_float : t -> float
Convert the given 64-bit integer to a floating-point number.
val of_float : float -> t
Alias to
Int64
.of_float. Convert the given floating-point number to a 64-bit integer, discarding the fractional part (truncate towards 0). The result of the conversion is undefined if, after truncation, the number is outside the range [CCInt64.min_int
,CCInt64.max_int
]. NOTE: used to return an option, but the function never fails.
val of_float_exn : float -> t
Alias to
Int64
.of_float.- deprecated
since 2.1, use
Int64
.of_float instead.
val to_string : t -> string
Return the string representation of its argument, in decimal.
val of_string : string -> t option
Safe version of
of_string_exn
.
val of_string_exn : string -> t
Alias to
Int64
.of_string. Convert the given string to a 64-bit integer. The string is read in decimal (by default, or if the string begins with0u
) or in hexadecimal, octal or binary if the string begins with0x
,0o
or0b
respectively.The
0u
prefix reads the input as an unsigned integer in the range[0, 2*CCInt64.max_int+1]
. If the input exceedsCCInt64.max_int
it is converted to the signed integerCCInt64.min_int + input - CCInt64.max_int - 1
.The
_
(underscore) character can appear anywhere in the string and is ignored. RaiseFailure "Int64.of_string"
if the given string is not a valid representation of an integer, or if the integer represented exceeds the range of integers representable in typeint64
.