Module Unsigned.UInt64

Unsigned 64-bit integer type and operations.

include S
type t
val add : t -> t -> t

Addition.

val sub : t -> t -> t

Subtraction.

val mul : t -> t -> t

Multiplication.

val div : t -> t -> t

Division. Raise Division_by_zero if the second argument is zero.

val rem : t -> t -> t

Integer remainder. Raise Division_by_zero if the second argument is zero.

val max_int : t

The greatest representable integer.

val logand : t -> t -> t

Bitwise logical and.

val logor : t -> t -> t

Bitwise logical or.

val logxor : t -> t -> t

Bitwise logical exclusive or.

val shift_left : t -> int -> t

shift_left x y shifts x to the left by y bits.

val shift_right : t -> int -> t

shift_right x y shifts x to the right by y bits.

val of_int : int -> t

Convert the given int value to an unsigned integer.

val to_int : t -> int

Convert the given unsigned integer value to an int.

val of_string : string -> t

Convert the given string to an unsigned integer. Raise Failure if the given string is not a valid representation of an unsigned integer.

val to_string : t -> string

Return the string representation of its argument.

val to_hexstring : t -> string

Return the hexadecimal string representation of its argument.

val zero : t

The integer 0.

val one : t

The integer 1.

val lognot : t -> t

Bitwise logical negation.

val succ : t -> t

Successor.

val pred : t -> t

Predecessor.

val compare : t -> t -> int

The comparison function for unsigned integers, with the same specification as Stdlib.compare.

val equal : t -> t -> bool

Tests for equality, with the same specification as Stdlib.(=).

val max : t -> t -> t

max x y is the greater of x and y

val min : t -> t -> t

min x y is the lesser of x and y

val of_string_opt : string -> t option

Convert the given string to an unsigned integer. Returns None if the given string is not a valid representation of an unsigned integer.

val pp : Format.formatter -> t -> unit

Output the result of to_string on a formatter.

val pp_hex : Format.formatter -> t -> unit

Output the result of to_hexstring on a formatter.

module Infix : Infix with type t := t
val of_int64 : int64 -> t

Convert the given 64-bit signed integer to an unsigned 64-bit integer.

If the signed integer fits within the unsigned range (in other words, if the signed integer is positive) then the numerical values represented by the signed and unsigned integers are the same.

Whether the signed integer fits or not, the function of_int64 is always the inverse of the function to_int64. In other words, to_int64 (of_int64 x) = x holds for all x : int64.

val to_int64 : t -> int64

Convert the given 64-bit unsigned integer to a signed 64-bit integer.

If the unsigned integer fits within the signed range (in other words, if the unsigned integer is less than Int64.max_int) then the numerical values represented by unsigned and signed integers are the same.

Whether the unsigned integer fits or not, the function to_int64 is always the inverse of the function of_int64. In other words, of_int64 (to_int64 x) = x holds for all x : t.

val of_uint32 : UInt32.t -> t

Convert the given 32-bit unsigned integer to a 64-bit unsigned integer.

val to_uint32 : t -> UInt32.t

Convert the given 64-bit unsigned integer to a 32-bit unsigned integer. The 64-bit unsigned integer is taken modulo 232, i.e. the top 32 bits are lost during the conversion.