package ocaml-base-compiler
Integer values.
Integers are Sys.int_size
bits wide and use two's complement representation. All operations are taken modulo 2Sys.int_size
. They do not fail on overflow.
Integers
div x y
is the division x / y
. See Stdlib.(/)
for details.
rem x y
is the remainder x mod y
. See Stdlib.(mod)
for details.
abs x
is the absolute value of x
. That is x
if x
is positive and neg x
if x
is negative. Warning. This may be negative if the argument is min_int
.
shift_left x n
shifts x
to the left by n
bits. The result is unspecified if n < 0
or n >
Sys.int_size
.
shift_right x n
shifts x
to the right by n
bits. This is an arithmetic shift: the sign bit of x
is replicated and inserted in the vacated bits. The result is unspecified if n < 0
or n >
Sys.int_size
.
shift_right x n
shifts x
to the right by n
bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of x
. The result is unspecified if n < 0
or n >
Sys.int_size
.
Predicates and comparisons
compare x y
is Stdlib.compare
x y
but more efficient.
Converting
of_float x
truncates x
to an integer. The result is unspecified if the argument is nan
or falls outside the range of representable integers.