int: operations on integers

Integers are 31 bits wide (or 63 bits on 64-bit processors). All operations are taken modulo 2^{31} (or 2^{63}). They do not fail on overflow.
exception Division_by_zero
value minus : int -> int
value minus_int : int -> int
Unary negation. You can write -e instead of minus e.
value succ : int -> int
succ x is x+1.
value pred : int -> int
pred x is x-1.
value prefix + : int -> int -> int
value add_int : int -> int -> int
Addition.
value prefix - : int -> int -> int
value sub_int : int -> int -> int
Subtraction.
value prefix * : int -> int -> int
value mult_int : int -> int -> int
Multiplication.
value prefix / : int -> int -> int
value div_int : int -> int -> int
value prefix quo : int -> int -> int
Integer division. Raise Division_by_zero if the second argument is 0. Give unpredictable results if either argument is negative.
value prefix mod : int -> int -> int
Remainder. Raise Division_by_zero if the second argument is 0. Give unpredictable results if either argument is negative.
value eq_int : int -> int -> bool
Integer equality. Equivalent to generic equality, just faster.
value neq_int : int -> int -> bool
Negation of eq_int.
value lt_int : int -> int -> bool
value gt_int : int -> int -> bool
value le_int : int -> int -> bool
value ge_int : int -> int -> bool
Usual comparisons between integers.
value abs : int -> int
Return the absolute value of the argument.
value max_int : int
value min_int : int
The greatest and smallest integer values.

Bitwise operations

value prefix land : int -> int -> int
Bitwise logical and.
value prefix lor : int -> int -> int
Bitwise logical or.
value prefix lxor : int -> int -> int
Bitwise logical exclusive or.
value lnot : int -> int
Bitwise complement
value prefix lsl : int -> int -> int
value lshift_left : int -> int -> int
n lsl m, or equivalently lshift_left n m, shifts n to the left by m bits.
value prefix lsr : int -> int -> int
n lsr m shifts n to the right by m bits. This is a logical shift: zeroes are inserted regardless of sign.
value prefix asr : int -> int -> int
value lshift_right : int -> int -> int
n asr m, or equivalently lshift_right n m, shifts n to the right by m bits. This is an arithmetic shift: the sign bit is replicated.

Conversion functions

value string_of_int : int -> string
Convert the given integer to its decimal representation.
value int_of_string : string -> int
Convert the given string to an integer, in decimal (by default) or in hexadecimal, octal or binary if the string begins with 0x, 0o or 0b. Raise Failure "int_of_string" if the given string is not a valid representation of an integer.